Oracle儲存過程書寫規範和技巧
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
n
n
n
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
n
n
n
n
n
Ø
n
n
where
and
or
n
Ø
Ø
Ø
Ø
Ø
Ø
Ø
n
n
Ø
n
n
n
n
n
Ø
Ø
Ø
Ø
Ø
Ø
錯誤 |
SELECT ......
|
正確 |
SELECT ......
|
Ø
錯誤 |
SELECT ......
|
正確 |
SELECT ......
|
Ø
錯誤 |
SELECT DISTINCT d.dept_code,d.dept_name
|
正確 |
SELECT dept_code,dept_name
|
Ø
Ø
Ø
Ø
一:
CREATE OR REPLACE PROCEDURE proc_batch
IS
interactionhour varchar(100);
upcdrname varchar(100);
part_hour varchar(100);
calendar date;
interactionday1 varchar(100);
interactionday varchar(100);
part_day varchar(100);
errmsg
BEGIN
calendar := sysdate-1/24;
part_hour :=to_char(sysdate-1/24,'hh24');
part_day :=to_char(sysdate-1,'dd');
interactionhour := 'interactionhour'||to_char(calendar,'yyyymm');
interactionday := 'interactionday'||to_char(calendar,'yyyymm');
interactionday1 := 'interactionday1'||to_char(calendar,'yyyymm');
upcdrname := 'upcdr'||to_char(calendar,'yymmdd');
proc_interactionhour (interactionhour,upcdrname ,part_hour ,calendar);
if to_char(sysdate,'hh24')='03' then
proc_interactionday (interactionhour ,interactionday ,interactionday1 ,part_day );
end if;
if to_char(sysdate,'hh24')='04' then
proc_interactiondayshow (interactionday1 ,interactionday );
end if;
insert into appmsg
values('成功執行proc_batch','proc_batch',sysdate);
commit;
END proc_batch;
/
二:CREATE OR REPLACE PROCEDURE proc_interactionday (interactionhour varchar,interactionday varchar,interactionday1 varchar,part_day varchar)
IS
sqltxt1 varchar(2000);
sqltxt2 varchar(2000);
cur_no number;
cur_val number;
errmsg varchar(300);
BEGIN
sqltxt1 :=' insert into '
cur_no:=dbms_sql.open_cursor;
dbms_sql.parse(cur_no,sqltxt1,dbms_sql.native);
cur_val:=dbms_sql.execute(cur_no);
dbms_sql.close_cursor(cur_no);
sqltxt2 :=' insert into '
cur_no:=dbms_sql.open_cursor;
dbms_sql.parse(cur_no,sqltxt2,dbms_sql.native);
cur_val:=dbms_sql.execute(cur_no);
dbms_sql.close_cursor(cur_no);
insert into appmsg
END proc_interactionday;
/
三:CREATE OR REPLACE PROCEDURE proc_interactiondayshow
IS
sqltxt1 varchar(2000);
sqltxt2 varchar(2000);
sqltxt3 varchar(2000);
sqltxt4 varchar(2000);
cur_no number;
cur_val number;
errmsg varchar(300);
BEGIN
sqltxt1 :=' insert into '
相關推薦
Oracle儲存過程書寫規範和技巧
Ø 變數名全部採用小寫,區域性變數名使用“v_”開頭,輸入引數以“i_開頭,輸出引數以“o_”開頭,輸入輸出引數用io_開頭。所有輸入引數必須顯示宣告 Ø 遊標的命名:遊標統一用字尾 “_cur” 命名 Ø 使用命名的常量以避免硬編碼,使用常量包,
java面試問題:oracle儲存過程(procedure)和函式(function)的區別
oracle儲存過程(procedure)和函式(function)的區別 儲存過程 函式 用於在資料庫中完成特定的操作或者任務(如插入、刪除等) 用於特定的資料(如選擇)
Oralcle儲存過程書寫規範
命名規則: 輸入引數用i作為字首,輸出引數用0來作為開頭.用來與表中欄位區分 引數名的第二個字母根據不同的輸入資料型別確定 //DESCERR 為特殊型別資料,專門作為儲存過程與業務平臺交換異常資料 --Is_shshid 收貨稽核ID --0s_messa
oracle儲存過程中is和as 的使用
在儲存過程(PROCEDURE)和函式(FUNCTION)中兩者都可以使用,但是有區別:使用IS 將無法使用除錯模式除錯該儲存過程(函式) 在檢視(VIEW)中只能用AS不能用IS; 在遊標(CURSO
oracle 儲存過程 輸出結果和正常查詢不一樣
我的專案是一個學校的教務系統的專案,有很多人蔘與過,因此有很多前人的坑 今天儲存過程裡就一條查詢語句,帶一個返回值,輸出的結果始終和單條查詢語句正常查詢的結果不一樣 儲存過程: CREATE OR REPLACE PROCEDURE PROC( result in out
oracle儲存過程中is和as的區別
create or replace procedure imp_person_medical(v_t_table_name varchar2,v_result out varchar2) as /*
sql(join中on與where區別) / NVL函式 / oracle儲存過程中is和as區別 / JAVA呼叫資料庫儲存過程
left join :左連線,返回左表中所有的記錄以及右表中連線欄位相等的記錄。 right join :右連線,返回右表中所有的記錄以及左表中連線欄位相等的記錄。 inner join: 內連線,又叫等值連線,只返回兩個表中連線欄位相等的行。 full join:外連線,返回兩個表中的行:left jo
Oracle 儲存過程中傳送郵件,並支援使用者驗證 中文標題和內容
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
在ORACLE中儲存過程變數名和表字段名相同
1.事件概述 今天再寫儲存過程使用變數沒注意到問題,導致SQL執行緩慢,找了許久才發現哪裡有問題。 2.發現問題 在儲存過程中執行下圖sql需要20秒左右,執行計劃發現走了全表掃描,而在儲存過程中相同的SQL不會有問題。 然後我單獨把SQL拿出來跑,將變數名替換成真實資料,1秒
Oracle 儲存過程 \ 遊標簡單定義和使用
-- Created on 2018/10/12 by 32580 declare -- 定義變數 變數賦值方式為: 變數名 := 值 i INTEGER ; sqls varchar2(500); user_id varchar2(36); l
Oracle 儲存過程、函式的建立和呼叫
一、Oracle 建立和呼叫儲存過程 1、基本語法 create or replace procedure update_emp_sal (Name in out type, Name in out type, ... ) is begin end update_emp_
Oracle 函式和儲存過程的區別和聯絡 總結版
oracle儲存過程與函式的區別 2017年08月15日 22:49:38 冷月葬花魂iiii 閱讀數:7800更多 個人分類: oracle 定義: 儲存過程(Stored Procedure )是一組為了完成特定功能的SQL 語句集
oracle 儲存過程和函式的呼叫方法
一.儲存過程(PROCEDURE)使用過程, 不僅可以簡化客戶端應用程式的開發和維護,而且可以提高應用程式的執行效能.CREATE [OR REPLACE] PROCUDURE procedure_name(arg1 [model1] datatype1, arg2[mod
ORACLE package包中的儲存過程的定義和使用
最近的專案中用到了oracle package包中的儲存過程。本文以一個簡單的插入為例,簡述從儲存過程的定義,包括PACKAGE的定義和PACKAGE BODY的定義,到儲存過程的使用。 首先用sql語句建立一個USER_INFO表,sql語句如下:************
ORACLE儲存過程建立和呼叫
主要總結下遇到個幾個問題: 1、在業務程式碼執行時,賦值給一個變數,需要使用:=,而不是=; 2、在plsql中執行完建立語句,呼叫報錯 解決辦法: 右鍵編輯儲存過程,在控制檯中可以看到報錯資訊,點選錯誤資訊,可以看到出錯程式碼被標紅 3、在查詢資料
Oracle儲存過程,臨時表的建立、刪除,變數的定義和使用
create or replace procedure Test_GetOaUserInfo as --authid current_user操作當前儲存過程的當前使用者,否則提示許可權不足,但是這樣儲存過程這能執行一次 --,或者GRANT CREATE A
hibernate5 呼叫 oracle 儲存過程和函式
@Autowired private SessionFactory sessionFactory; //呼叫無返回值儲存過程 public void callProcNoResult(String name){ String sql="{call test_proc_no_result(?)}"; se
關於Oracle中執行儲存過程使用call和exec區別說明
在sqlplus中這兩種方法都可以使用: exec pro_name(引數1..); call pro_name(引數1..); 區別: 1. 但是exec是sqlplus命令,只能在sqlplus中使用;call為SQL命令,沒有限制. 2. 儲存過程沒有
oracle 儲存過程和函式的呼叫方法
一.儲存過程(PROCEDURE) 使用過程, 不僅可以簡化客戶端應用程式的開發和維護,而且可以提高應用程式的執行效能. CREATE [OR REPLACE] PROCUDURE procedure_name (arg1 [model1] datatype1, arg2[m
Oracle儲存過程和自定義函式
概述 PL/SQL中的過程和函式(通常稱為子程式)是PL/SQL塊的一種特殊的型別,這種型別的子程式可以以編譯的形式存放在資料庫中,併為後續的程式塊呼叫。 相同點: 完成特定功能的程式 不同點:是否用return語句返回值。 舉個例子: cre