ORACLE中DBMS_SQL封装过程
来源:互联网 发布:money pro mac 编辑:程序博客网 时间:2024/05/21 07:13
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;
例2:
CREATE OR REPLACE
procedure dml_sql (the_rq varchar2) as
The_c1 Integer;
The_result Integer;--dml_sql_result
M_jls number;
The_xh varchar2(2);
Begin
The_xh:=lpad(ltrim(the_rq),2,'0');
The_C1 :=Dbms_sql.open_cursor;
Dbms_sql.parse(the_C1,'select count(*) from user_indexes
where table_name =''ZDCHB'''||the_xh,dbms_sql.v7);
Dbms_sql.define_column(the_c1,1,M_jls);
The_result:=Dbms_sql.execute(The_c1);
If dbms_sql.fetch_rows(cursor1) > 0 then
Dbms_sql.column_value(cursor1,1,M_jls);
End if;
Dbms_sql.close_cursor(The_C1);
End;
- ORACLE中DBMS_SQL封装过程
- Oracle应用——DBMS_SQL封装过程
- ORACLE应用经验(3)-DBMS_SQL封装过程[转载]
- ORACLE中DBMS_SQL的用法
- oracle中dbms_sql的使用
- Oracle中dbms_sql的使用
- ORACLE中DBMS_SQL的用法
- PL/SQL开发过程中,动态使用DBMS_SQL
- oracle的DBMS_SQL中动态游标的使用资料搜集
- ORACLE 程序包 dbms_sql
- Oracle DBMS_SQL的使用
- oracle 存储过程,导出sql到文本,动态sql,dbms_sql使用
- Oracle---DBMS_SQL----动态SQL语句
- 使用存储过程在Oracle中来封装分页
- DBMS_SQL
- DBMS_SQL
- DBMS_SQL
- dbms_sql
- 自定义Spinner得误区
- Spring事务配置的五种方式
- 创建oracle dblink 的两种方式
- 你开始变的虚伪 是自尊心一直作祟
- VC++深入详解的学习
- ORACLE中DBMS_SQL封装过程
- ant 使用方法
- 合成图片的两种方法,思路都是一样的
- JSTL与Struts的结合(八)
- mangix debug --0: scsi连接超时断开
- Oracle 中 SQLCODE/SQLERRM
- Android Push 开源方案解析
- 为什么程序员喜欢在深夜编程?
- 【<meta name="" content=">】的作用