oracle – SQL Developer脚本输出截断sys_refcursor宽度
我有一个函数定义,返回一个包含5个文本列的sys_refcursor.对不起,由于商业原因,我无法在此发布内容.列被转换为具有特定宽度(9,4,10,10)的varchar2.铸件允许我确保柱宽是恒定的.
在SQL Developer 1.5中,打印脚本输出(使用SQL工作表中的F5)很好地显示了光标的内容: MY_FUNCTION(input1,input2,input3) --------------------------------- COLUMN1 COLU COLUMN3 COLUMN4 COLUMN5 --------- ---- ---------- ---------- ---------- 18-NOV-14 TEXT SOME_DATA1 SOME_DATA2 SOME_DATA3 18-NOV-14 TEXT SOME_DATA1 SOME_DATA2 SOME_DATA3 18-NOV-14 TEXT SOME_DATA1 SOME_DATA2 SOME_DATA3 18-NOV-14 TEXT SOME_DATA1 SOME_DATA2 SOME_DATA3 但是,在SQL Developer 4.0中,输出在函数调用的宽度处被包装(类似于SQLPlus的linesize参数): MY_FUNCTION(input1,input3) --------------------------------- COLUMN1 COLU COLUMN3 COLUMN4 COLUMN5 --------- ---- ---------- ------- --- ---------- 18-NOV-14 TEXT SOME_DATA1 SOME_DA TA2 SOME_DATA3 18-NOV-14 TEXT SOME_DATA1 SOME_DA TA2 SOME_DATA3 18-NOV-14 TEXT SOME_DATA1 SOME_DA TA2 SOME_DATA3 18-NOV-14 TEXT SOME_DATA1 SOME_DA TA2 SOME_DATA3 数据库版本为11g.我已尝试使用“set linesize 1000”命令,但输出仍然以相同的长度包装.但是,设置linesize 5将使其包含5个字符. 在不使用任何“set”命令的情况下,SQL * Plus中的输出显示正常. 有没有办法防止在4.0中包装游标内容? 不是直接回答问题 – 我不知道为什么行为不同或者如何在从查询调用函数时更改它,除了使用列命令来设置宽度,使用别名来简化一些事情:set lines 250 column rc format a250 select my_function(input1,input3) as rc from dual; 但是你也可以通过不同的方式调用函数来获得你想要的输出;使用变量和匿名块(或以速记形式执行): variable rc refcursor; exec :rc := MY_FUNCTION(input1,input3); print rc 好吧,几乎就像你想要的那样;输出的第一行是变量名而不是函数/参数列表;但光标列未包装: anonymous block completed RC --------------------------------------------------------------------------- COLUMN1 COLUMN2 COLUMN3 COLUMN4 COLUMN5 ------------------------- ------- ---------- ---------- ---------- 18-NOV-14 text some_data1 some_data2 some_data3 您还可以从代码编辑器(而不是工作表)运行您的函数,它会为您生成匿名块;当您单击运行箭头(或点击控件-F10)时,您会得到如下对话框: 运行后,您会在主窗口底部看到一个“输出变量”选项卡,它会在网格中显示光标输出. 从dual运行select my_function(…)时,您还可以看到网格视图.光标进入正常的“查询结果”窗口但不是非常友好的形式,显示为: {<COLUMN1=19-NOV-14,COLUMN2=text,COLUMN3=some_data1,COLUMN4=some_data2,COLUMN5=some_data3>,} 但是,如果双击某个值,则会在该列的最右侧看到一个黄色铅笔符号,然后单击该符号会将该光标显示在其自己的网格中. 我个人更喜欢脚本输出中的print选项,但我很少使用gird显示. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |