oracle 执行动态sql,using动态参数
来源:互联网 发布:淘宝网店怎么装修 编辑:程序博客网 时间:2024/05/21 00:20
动态sql,当变量个数不确定时。如果直接open vCursor for piSQL using 变量1,变量2 ,真是一个体力活。
发现居然可用 DBMS_SQL.TO_REFCURSOR()转换为 可返回的cursor;
create or replace procedure test_dbms_sql
(
curCursor out sys_refcursor,
piStatus in char,
piCompanyID in varchar2
)
is
V_SQL VARCHAR2(1000) ;
vCurID NUMBER;
vResult number;
begin
--poErrorCode :='0' ;
vCurID := DBMS_SQL.OPEN_CURSOR;
---略去sql拼接过程
V_SQL := 'SELECT * FROM t_product where status = :Status and Company_id = :CompanyID';
DBMS_SQL.PARSE(vCurId, V_SQL, DBMS_SQL.NATIVE);
if (piCompanyID is not null) then
DBMS_SQL.bind_variable(vCurId,':CompanyID',piCompanyID );
end if;
if (piStatus is not null) then
DBMS_SQL.bind_variable(vCurId,':Status',piStatus );
end if;
vResult := DBMS_SQL.EXECUTE(vCurID);
--转为可返回的cursor
curCursor := DBMS_SQL.TO_REFCURSOR(vCurID);
--poErrorCode := '1' ;
exception
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(SQLErrm);
end test_dbms_sql;
发现居然可用 DBMS_SQL.TO_REFCURSOR()转换为 可返回的cursor;
create or replace procedure test_dbms_sql
(
curCursor out sys_refcursor,
piStatus in char,
piCompanyID in varchar2
)
is
V_SQL VARCHAR2(1000) ;
vCurID NUMBER;
vResult number;
begin
--poErrorCode :='0' ;
vCurID := DBMS_SQL.OPEN_CURSOR;
---略去sql拼接过程
V_SQL := 'SELECT * FROM t_product where status = :Status and Company_id = :CompanyID';
DBMS_SQL.PARSE(vCurId, V_SQL, DBMS_SQL.NATIVE);
if (piCompanyID is not null) then
DBMS_SQL.bind_variable(vCurId,':CompanyID',piCompanyID );
end if;
if (piStatus is not null) then
DBMS_SQL.bind_variable(vCurId,':Status',piStatus );
end if;
vResult := DBMS_SQL.EXECUTE(vCurID);
--转为可返回的cursor
curCursor := DBMS_SQL.TO_REFCURSOR(vCurID);
--poErrorCode := '1' ;
exception
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(SQLErrm);
end test_dbms_sql;
阅读全文
0 0
- oracle 执行动态sql,using动态参数
- oracle 动态执行sql
- ORACLE 动态执行SQL语句
- ORACLE 动态执行SQL语句
- Oracle里面的using作用(用于动态sql绑定参数)
- ibatis动态获取执行SQL和参数
- oracle 使用DBMS_SQL包动态执行sql
- 在Oracle中执行动态SQL
- oracle 动态sql执行-EXECUTE IMMEDIATE
- Oracle 存储过程 动态sql执行
- oracle存储过程执行动态sql
- Oracle存储过程执行动态sql
- Oracle 存储过程中执行动态SQL,动态表名
- oracle 动态sql参数带date类型无法执行的问题
- SQL Server中动态SQL执行解析 传参数等
- 动态执行带参数的sql语句,适用于sql server
- 执行动态的SQL
- 动态执行sql语句
- CORS 跨域 实现思路及相关解决方案
- 值得奋斗的
- 关于google chrome源码了解
- iptables NAT 做端口映射
- Python 小技巧:任意属性值可在构造函数中设置的 Bunch Pattern
- oracle 执行动态sql,using动态参数
- Qt5.7 + VS2015 环境搭建以及后续问题总结
- Dubbo生产者抛出自定义异常的问题
- 第十七讲 Comparator接口、System和Runtime、数字处理工具类、MD5
- navicat远程连接linux 禅道mysql设置
- Latex插入表格示例
- c语言字符串替换
- 二叉搜索树中的最近公共祖先
- not found Qt5SvgConfig.cmake