*1.定义一个新的存储过程:
CREATE OR REPLACE PROCEDURE 存储名 AUTHID CURRENT_USER
BEGIN
IS
****定义变量****
BEGIN
****执行动作****
END;
END;
*2.定义变量:
v_sql VARCHAR2(2000);
v_num number;
v_date date;
*3.变量赋值:
v_sql := 'select * from dataTable where EQP_ID = '1PHL0120' and date between '''||v_date||''' and '''||v_date2||''''; //注意'为转义字符,要用'''输出'
*4.打印变量:
dbms_output.put_line(v_sql);
*5.异常捕获:
BEGIN
EXCEPTION
WHEN OTHERS THEN
......
END;
*6.循环(游标):
TYPE curtype IS REF CURSOR; //定义游标
l_cursor curtype;
TYPE dataTable IS TABLE OF SYS.DATATABLE%ROWTYPE; //使dataTable的表结构和SYS.DATATABLE表一致,SYS.DATATABLE 为DB中现有table
l_dataTable dataTable;
open l_cursor for v_sql; //打开游标
LOOP
FETCH l_cursor BULK COLLECT INTO l_dataTable; //把游标里的数据into到新table
FORALL i in 1..l_dataTable.COUNT //循环新table,从1开始
.......
EXIT WHEN l_cursor%NOTFOUND; //当游标没有数据时结束循环
END LOOP;
CLOSE l_cursor; //关闭游标
*7.plsqldev debug :右击procedure -> 选择Test -> 点击 Start debugger -> 再点击Step into一步步调试下去