首页 > 数据库技术 > 详细

Oracle日常

时间:2019-09-07 22:24:09      阅读:123      评论:0      收藏:0      [点我收藏+]

Xmltype

select extractvalue(value(x), //utext) value from table(XMLSEQUENCE(extract(v_xmlContent, //utext))) x;

该sql能够提取出xmltype类型数据中,所有<utext></utext>标签下的值。

 

SYS_REFCURSOR动态游标的使用

SYS_REFCURSOR为动态游标,可在运行的时候动态决定执行查询。

REF游标可作为参数传递(in/out都可以)。

需注意的是,用于接收游标结果集的变量,其type与游标结果集必须完全一致,也就是列数量与数据类型能一一对应。

CREATE OR REPLACE PROCEDURE p_refcursor IS
  v_cur SYS_REFCURSOR; --定义动态游标
  TYPE t_type IS RECORD(
    v_id      VARCHAR2(3000),
    v_content clob); --自定义结果集类型
  v_result t_type; --定义一个t_type类型的变量,用来存放后续查询结果,或table%rowtype
  --v_result test%rowtype;
  v_sql VARCHAR(3000);
BEGIN
  v_sql := select uniqueid,name from test; --这里sql语句可以是动态的(拼接变量),更加灵活
  OPEN v_cur FOR v_sql; --打开游标
  FETCH v_cur
    INTO v_result; --赋值给v_result
  WHILE v_cur%FOUND LOOP --游标循环
    DBMS_OUTPUT.put_line(v_result.v_id || v_result.v_content);
    FETCH v_cur
      INTO v_result; --赋值下一条
  END LOOP;
  CLOSE v_cur; --关闭游标
END;

 

Oracle日常

原文:https://www.cnblogs.com/ohmyuan/p/11483395.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!