文档详情

Oracle存储过程学习.doc

发布:2018-10-09约字共5页下载文档
文本预览下载声明
Oracle存储过程学习   大家都知道存储过程的开头语句是CREATE OR REPLACE PROCEDURE (VAR in type,VAR out type, .....) AS | IS 但从变量申明开始变量类型有哪些? BEGIN后逻辑语句有哪些,我就记不清楚了。 这里先给个简单的栗子 1 2 3 4 5 6 7 8 9 10 11 12 CREATE?OR?REPLACE?PROCEDURE?OUTPUTINFO?AS ??I?NUMBER(10);?--在这里申明变量I BEGIN ??I?:=?0;?--申明变量I的值为0 ??WHILE?I?=?10?LOOP ????--这里使用了WHILE循环? ????BEGIN ??????I?:=?I?+?1; ????END; ????DBMS_OUTPUT.PUT_LINE(I);?--发现该句放在BEGIN,END结构内外,结果一样? ??END?LOOP; END?OUTPUTINFO; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 SQL?SET?SERVEROUTPUT?ON SQL?EXEC?OUTPUTINFO; 1 2 3 4 5 6 7 8 9 10 11 PL/SQL?PROCEDURE?SUCCESSFULLY?COMPLETED. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 CREATE?OR?REPLACE?PROCEDURE?TBS?AS ??TB????VARCHAR2(15); ??TBN???NUMBER(10)?DEFAULT?1; ??V_SQL?VARCHAR2(2000); ??CNT???NUMBER(10); ??TBD???DATE; BEGIN ??TBD?:=?TO_DATE(2013/12/31?23:59:59,?YYYY/MM/DD?HH24:MI:SS); ??WHILE?(TBN?=?11)?LOOP ????TB????:=?TBILLLOG?||?TBN; ????TBN???:=?TBN?+?1; ????V_SQL?:=?SELECT?COUNT(*)?FROM??||?TB; ????EXECUTE?IMMEDIATE?V_SQL ??????INTO?CNT; ????IF?CNT??1?THEN ??????DBMS_OUTPUT.PUT_LINE(TBD?||???||?TBN?||???||?CNT); ????END?IF; ??END?LOOP; END; 今天写作业,一个简单的过程,犯了个简单的逻辑错误,输出的时候使用的变量是V_SQL,导致结果总是SELECT语句而非语句执行的结果。 1 2 3 4 5 6 7 8 9 CREATE?OR?REPLACE?PROCEDURE?MALE_AVG_SALARY?AS ??V_SQL???VARCHAR2(2000); ??RESULTS?NUMBER(10); BEGIN ??V_SQL?:=?SELECT?AVG(SALARY)?FROM?EMPLOYEES?WHERE?EMPLOYEESEX=?|| ???????????M?||??GROUP?BY?EMPLOYEESEX; ??EXECUTE?IMMEDIATE?V_SQL; ??DBMS_OUTPUT.PUT_LINE(V_SQL); END; 今天的作业继续头大,不过参考了业务库上的过程,对过程调用有了进一步的认识: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 显示的开启游标 CREATE?OR?REPLACE?PROCEDURE?EMPLOYEE_SALARY(GENTEE?IN?VARCHAR2)?AS ??CURSOR?CUR?IS ????SELECT?FIRST_NAME?||?LAST_NAME?EMPLOYEE_NAME,?SALARY ??????FROM?EMPLOYEES ?????WHERE?EMPLOYEESEX?=?GENTEE; ??R?EMPLOYEES?%?ROWTYPE; BEGIN ??FOR?R?IN?CUR?LOOP ????BEGIN ??????DBMS_OUTPUT.PUT_LINE(EMPLOYEE_NAME:??||?R.EMPLOYEE_NAME?|| ????????????????????????????EMPLOYEE_SALARY:??||?R.S
显示全部
相似文档