关于DBMS_OUTPUT.PUT_LINE的一点疑问。

[复制链接]
查看11 | 回复8 | 2009-11-17 16:39:34 | 显示全部楼层 |阅读模式
暂时因为查资料没挖掘到答案,所以前来问问各位经验人士。
如果用DBMS_OUTPUT.PUT_LINE输出的内容过长,又不希望一行输出到底。
希望输出的内容可以换行继续输出,这个应该怎么实现?
谢谢。


回复

使用道具 举报

千问 | 2009-11-17 16:39:34 | 显示全部楼层
重写过程!
回复

使用道具 举报

千问 | 2009-11-17 16:39:34 | 显示全部楼层
前几天刚回答的,你用那个put_line或p过程都行,嘿嘿!put_line过程随便你限制每行多少个字符,也可以把那两个过程自己改写下!
直接用put_line貌似就是固定的!
回复

使用道具 举报

千问 | 2009-11-17 16:39:34 | 显示全部楼层
自己往数据里插入回车换行
回复

使用道具 举报

千问 | 2009-11-17 16:39:34 | 显示全部楼层
CREATE OR REPLACE PROCEDURE put_line_unlimit(p_string IN VARCHAR2) IS
l_string LONG DEFAULT p_string;
BEGIN
LOOP
EXIT WHEN l_string IS NULL;
dbms_output.put_line(substr(l_string, 1, 250));
l_string := substr(l_string, 251);
END LOOP;
END;
回复

使用道具 举报

千问 | 2009-11-17 16:39:34 | 显示全部楼层
quote]原帖由 dingjun123 于 2010-6-10 23:15 发表
前几天刚回答的,你用那个put_line或p过程都行,嘿嘿!put_line过程随便你限制每行多少个字符,也可以把那两个过程自己改写下!
直接用put_line貌似就是固定的! [/quote]

前几天?哪个帖子?
发表于 2010-6-11 07:59
自己往数据里插入回车换行

不明。源表的数据不是我这边左右的。再说输出的字符串究竟有多长,也不是固定的。
发表于 2010-6-11 08:37
CREATE OR REPLACE PROCEDURE put_line_unlimit(p_string IN VARCHAR2) IS
l_string LONG DEFAULT p_string;
BEGIN
LOOP
EXIT WHEN l_string IS NULL;
dbms_output.put_line(substr(l_string, 1, 250));
l_string := substr(l_string, 251);
END LOOP;
END;

250,字节?或是字符?嗯,我去试试看吧。谢了。
回复

使用道具 举报

千问 | 2009-11-17 16:39:34 | 显示全部楼层
昨天晚上大概比较晚了,脑子不清醒,我记得明明复制了那个地址的,没有放上来,晕
http://www.itpub.net/viewthread. ... p;extra=&page=1
回复

使用道具 举报

千问 | 2009-11-17 16:39:34 | 显示全部楼层
最好是在拼接字符串的时候适当的加入换行符,使用substr也是不得已而为之
可能产生不合理的换行。比如一个单词:oracle,可能被切开为:
ora
cle
导致语句含义不正确。
回复

使用道具 举报

千问 | 2009-11-17 16:39:34 | 显示全部楼层
原帖由 regonly1 于 2010-6-11 10:00 发表
最好是在拼接字符串的时候适当的加入换行符,使用substr也是不得已而为之
可能产生不合理的换行。比如一个单词:oracle,可能被切开为:
ora
cle
导致语句含义不正确。

嗯 谢谢,看了那份原帖,又明白了很多。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行