ORACLE 用sys.dbms_sql执行SQL例
来源:互联网 发布:月中天 知乎 编辑:程序博客网 时间:2024/06/09 22:49
下面实例用sys.dbms_sql执行SQL例,可以选择SELECT 返回值也可选择FUNCTION调用返回值,具体运用要视实际情况做修改。
function GetSqlResult(
data_sql_ in varchar2) return varchar2is
sDataSql varchar2(2000);
sReturn varchar2(200);
cid_ number;
rows_ number;
stmt_ varchar2(2000);
begin
sDataSql := data_sql_;
if instr(sDataSql,'[SELECT]') > 0 then --调用SELECT 返回
sDataSql := replace(sDataSql,'[SELECT]','');cid_ := dbms_sql.open_cursor;
dbms_sql.parse(cid_, sDataSql, dbms_sql.native);
sys.dbms_sql.define_column(cid_, 1, sReturn,200);
rows_ := sys.dbms_sql.execute(cid_);
if (dbms_sql.fetch_rows(cid_) > 0) then
sys.dbms_sql.column_value(cid_, 1, sReturn);
end if;
sys.dbms_sql.close_cursor(cid_);
elsif instr(sDataSql,'[FUN]') > 0 then --调用function返回值sDataSql := replace(sDataSql,'[FUN]','');
if instr(upper(sDataSql),'BEGIN ') <= 0 and instr(sDataSql,';') <= 0 then
sDataSql := 'BEGIN '||sDataSql|| '; END;';
elsif instr(upper(sDataSql),'BEGIN ') <= 0 then
sDataSql := 'BEGIN '||sDataSql|| ' END;';
end if;
execute immediate sDataSql using out sReturn;
else
sReturn := substrb(data_sql_,1,100);
end if;
return sReturn;
exception
when others then
if dbms_sql.is_open(cid_) then
dbms_sql.close_cursor(cid_);
end if;
return 'ERROR';
end GetSqlResult;
阅读全文
0 0
- ORACLE 用sys.dbms_sql执行SQL例
- oracle 使用DBMS_SQL包动态执行sql
- 使用Oracle的DBMS_SQL包执行动态SQL语句
- 使用Oracle的DBMS_SQL包执行动态SQL语句
- 使用Oracle的DBMS_SQL包执行动态SQL语句
- 使用Oracle的DBMS_SQL包执行动态SQL语句
- 使用Oracle的DBMS_SQL包执行动态SQL语句
- 使用Oracle的DBMS_SQL包执行动态SQL语句
- Oracle---DBMS_SQL----动态SQL语句
- 使用DBMS_SQL包动态执行sql
- 使用PL/SQL内置的DBMS_SQL包执行动态SQL
- ORACLE 程序包 dbms_sql
- Oracle DBMS_SQL的使用
- oracle 存储过程,导出sql到文本,动态sql,dbms_sql使用
- ORACLE中DBMS_SQL封装过程
- ORACLE中DBMS_SQL的用法
- oracle中dbms_sql的使用
- Oracle中dbms_sql的使用
- 【HTML/JS】百度地图javascriptAPI点击地图得到坐标(拾取坐标) 标签: 百度地图坐标
- Linux 下用脚shell脚本实现进度条的编写
- AS开发中出现Error(九)——app\build\intermediates\res\resources-xxx-stripped.ap_' specified for property 'res
- hdu 1180
- Jquery 获取 radio选中值
- ORACLE 用sys.dbms_sql执行SQL例
- Hibernate缓存机制
- Serializable和Parcelable的区别
- 大富豪5.3全网首发,真正的5.3正版破解授权,不是高防端
- Java应用程序运行时监控方法(一)——JVMTI的应用
- java nio
- Python小练习
- 6月份英语总结
- oracle导入导出命令