Oracle中DBMS_SQL封装过程

DBMS_SQL封装过程中主要函数
1、OPEN_CURSOR:返回新游标的ID值
2、PARSE:解析要执行的语句
3、BIND_VARIABLE:将给定的数量与特定的变量相连接
4、DEFINE_COLOUMN:定义字段变量,其值对应于指定游标中某个位置元素的值
                    (仅用于SELECT语句)
5、EXECUTE:执行指定的游标
6、EXECUTE_AND_FETCH:执行指定的游标并取记录
7、FETCH_ROWS:从指定的游标中取出记录
8、COLUMN_VALUE:返回游标中指定位置的元素
9、IS_OPEN:当指定的游标状态为OPEN时返回真值
10、CLOSE_CURSOR:关闭指定的游标并释放内存
11、LAST_ERROR_POSITION:返回出错SQL语句的字节偏移量
12、LAST_ROW_ID:返回最后一条记录的ROWID
13、LAST_SQL_FUNCTION_CODE:返回语句的SQL FUNCTION CODE

例1:

create or replace procedure LNQ (v_cardno varchar2, v_wdate datetime,v_wtime datetime)
is
vc1 NUMBER;
vi1 INTEGER;
vstr1 VARCHAR2(300);
BEGIN

-定义SQL命令
vstr1:='delete from emp where cardno=:cardno and wdate=:wdate and wtime=:wtime';

创建一个游标
vc1:=DBMS_SQL.OPEN_CURSOR;

向服务器发出一个语句并检查这个语句的语法和语义错误
DBMS_SQL.PARSE(vc1,vstr1,DBMS_SQL.V7);

assign parameter value
DBMS_SQL.BIND_VARIABLE(vc1,':cardno',v_cardno);
DBMS_SQL.BIND_VARIABLE(vc1,':wdate',v_wdate);
DBMS_SQL.BIND_VARIABLE(vc1,':wtime',v_wtime);

执行此语句,因为执行的是查询,所以必须跟着Fetch_Rows函数并为单个行检索数据

vi1:=DBMS_SQL.EXECUTE(vc1);

关掉游标
DBMS_SQL.CLOSE_CURSOR(vc1);
END;

相关推荐