首页 > 数据库 >通过Oracle存储过程执行动态SQL输出结果集

通过Oracle存储过程执行动态SQL输出结果集

时间:2022-09-28 16:24:48浏览次数:57  
标签:存储 CUR -- SQLS VARCHAR2 SQL Oracle QUERY

好久没用发现有些记不得了,整理记录下

CREATE OR REPLACE PROCEDURE P_TEST_OUTCUR1(O_CUR OUT SYS_REFCURSOR)
AS
 R_ERR1 EXCEPTION;  --自定义异常
 V_SQLS VARCHAR2(2000);   --动态SQL
 V_ERRMSG VARCHAR2(100);   --错误消息
 V_QUERY VARCHAR2(500);   --条件参数
BEGIN
 V_QUERY:='AND A.ENAME='''||'SMITH'||'''';
 IF V_QUERY IS NULL THEN
   RAISE R_ERR1;
 END IF;
 V_SQLS:='SELECT A.EMPNO,A.ENAME,A.JOB,A.SAL FROM EMP A WHERE 1=1 '||V_QUERY;

--执行动态SQL
--EXECUTE IMMEDIATE V_SQLS;
--执行动态SQL将结果集赋给输出游标
OPEN O_CUR FOR V_SQLS;
EXCEPTION
  WHEN R_ERR1 THEN
    OPEN O_CUR FOR SELECT '参数有误' FROM DUAL;
  WHEN OTHERS THEN
    V_ERRMSG:= SUBSTR(SQLERRM,1,100);
    OPEN O_CUR FOR SELECT V_ERRMSG FROM DUAL;
END P_TEST_OUTCUR1;

 

标签:存储,CUR,--,SQLS,VARCHAR2,SQL,Oracle,QUERY
From: https://www.cnblogs.com/ZwyBky/p/16738471.html

相关文章

  • SQL字符串转换为数组
    思路:按指定符号分割字符串,返回分割后的元素个数,方法很简单,就是看字符串中存在多少个分隔符号,然后再加一,就是要求的结果。——返回字符串数组长度函数createfunctionGet......
  • MYSQL中的json数据操作
    1.2基础查询操作用法提示:如果json字符串不是数组,则直接使用$.字段名如果json字符串是数组[Array],则直接使用$[对应元素的索引id]1.2.1一般json查询使用 json字段......
  • 解决Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver cl
    解决Loadingclass`com.mysql.jdbc.Driver'.Thisisdeprecated.Thenewdriverclassis`com.mysql.cj.jdbc.Driver'.Thedriverisautomaticallyregisteredviat......
  • Mysql 数据库SQL脚本导入
    1.进入mysql命令行窗口mysql-uroot-p1234562.展示所有数据库showdatabases;3.选择数据库use数据库名4.展示选择的数据库中所有表showtables;5.导入指定......
  • MYSQL定时执行事件
    开启事件调度器1、确认是否开启SHOWVARIABLESLIKE'event_scheduler';2、开启命令SETGLOBALevent_scheduler=ON;创建事件<创建后默认开启>CREATEEVENT[IFNOT......
  • mysql存储过程的调用方法
    mysql存储过程的调用方法是经常会用到的,下面就为您介绍mysql存储过程的调用方法,希望对您学习mysql存储过程方面会有些许帮助。先进入mysql命令行环境然后创建函数,先要选择数......
  • 一步步搞懂 MySQL 元数据锁(MDL)
    一步步搞懂MySQL元数据锁(MDL)某日,路上收到用户咨询,为了清除空间,想删除某200多G大表数据,且已经确认此表不再有业务访问,于是执行了一条命令‘deletefrombigtable’,但......
  • 一步步搞懂 MySQL 元数据锁(MDL)
    一步步搞懂MySQL元数据锁(MDL)某日,路上收到用户咨询,为了清除空间,想删除某200多G大表数据,且已经确认此表不再有业务访问,于是执行了一条命令‘deletefrombigtable’,但......
  • oracle在SQL窗口中调用存储过程sql
    DECLARErs_json_outVARCHAR2(512);p_errmsgVARCHAR2(512);BEGINSP_SST_GET_CARD_NO('{"P_ZDBH00":"001","P_INSUORG":"360000","P_ID0000":"02","P_SFZHAO":"350821198......
  • 牛客网-SQL专项训练24
    ①下列选项关于游标的作用叙述正确的是(D) 解析:游标是一种从包括多条数据记录的结果集中每次提取一条记录以便处理的机制,可以看做是查询结果的记录指针。游标与视图类似,......