Oracle相关
fushidi
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ORA-22992: 无法使用从远程表选择的 LOB 定位符
动态SQL中driving_site远程表导致ORA-22992: 无法使用从远程表选择的 LOB 定位符原创 2023-03-27 21:14:23 · 601 阅读 · 0 评论 -
[oracle]通过DBLINK远程查询带DBLINK的视图
最近做了一个非常蛋疼的需求:有A、B两个数据库实例,A下面有user1和user2两个用户,B实例下有用户user3。现在user1 用户下建连接user3名为link3的DBLINK,并写视图user1.v_test查询 user3 用户下的tableA。CREATE OR REPLACE VIEW user1.v_test ASselect field1,field2 from tableA@link3where 1=1;在user2用户下调用user1.v_test即报“ORA原创 2021-09-07 19:21:03 · 2471 阅读 · 0 评论 -
[Oracle]ORA-03127: 在活动操作结束之前不允许进行新的操作, clob类型出参在PL/SQL测试报错
函数定义如下:返回值以及两个出参都是clob类型--函数定义function GetFieldListCompare(sInfoName in VARCHAR2,sTableName in VARCHAR2,slogTableOwner in VARCHAR2,sNullField out clob,sSpliceCount out clob,sIsIndex out varchar2)RETURN clob;测试过程:报错如下:ORA-03127: 在活动操作.原创 2021-08-17 17:47:06 · 3609 阅读 · 0 评论 -
[Oracle] ora-22992:无法使用从远程表选择的 LOB 定位符
LOB 字段是不支持DB LINK 方式的,可以用折中的办法创建一个临时表方式,或者物化视图等方式我的问题场景是在存储过程中查询远程表,FETCH INTO 本地变量,这个变量定义为CLOB 类型。SELECT t.c_field1, t.c_field2, t.c_field3 FROM tableA@Link t WHERE 1=1解决办法:改写SQL,使用视图实体化将数据先拉到本地。with v_tmp as (SELECT /*+ materialize */ t.c_.原创 2021-06-23 13:18:28 · 10379 阅读 · 0 评论 -
[Oracle]正则表达式函数 - 按分隔符拆分字符串
select regexp_substr(V_HEAD, '[^$]+', 1, t2.lv) field,--截取对应行数的数据 trim(regexp_substr(replace(V_DATA,'$$','$ $'), '[^$]+', 1, t2.lv)) data--截取对应行数的数据 from (select level lv--生成行数序列数据 1到最大行数 from (select max(regexp_count(V_HEAD, '[^$]...原创 2021-06-11 13:39:02 · 909 阅读 · 1 评论 -
[Oracle] CLOB大数据字段类型操作方法(转)
【原文链接】VARCHAR2既分PL/SQL Data Types中的变量类型,也分Oracle Database中的字段类型,不同场景的最大长度不同。接下来通过本文给大家分享Oracle的CLOB大数据字段类型操作方法,感兴趣的朋友一起看看吧...转载 2021-06-09 14:19:56 · 1182 阅读 · 0 评论 -
[Oracle]oracle SQL优化 driving_site解决 DBLINK关联效率
SELECT /*+ driving_site(t) use_nl(a,t) leading(a)*/ a.c_fundcode, a.d_cdate, a.d_reinvestdate, a.f_netvalue, t.en_dwjzfrom (SELECT distinct tp.c_fundcode, tp.d_cdate,--基准日 tp.d_reinvestdate,--再投日 td.f_ne...原创 2021-05-28 16:10:18 · 620 阅读 · 0 评论 -
[Oracle]解决dbms_output.put_line输出长度限制
解决dbms_output.put_line输出长度限制设置dbms_output.enable(n);n为一个比较大的数值,即长度大于即将输出的内容。如下函数是将输出的长段内容逐行输出的存储过程,可替代dbms_output.put_line使用。create or replace procedure put_line_unlimit(p_string in varchar2 )is l_string long default p_string; enternum numb原创 2021-02-03 14:45:38 · 2408 阅读 · 0 评论
分享