Oracle数据库的pl/sql编程问题:

dbms_output.put('转账前总余额:');dbms_output.put_line(account_a+account_b);和dbms_output.put... dbms_output.put('转账前总余额:');
dbms_output.put_line(account_a+account_b);

和dbms_output.put_line('转账前总余额:'||account_a+account_b);为什么要分开来写?下面的执行出错,上面分开来写就没问题,请问这是为什么啊
展开
 我来答
hit_lubin
2011-05-09 · TA获得超过7889个赞
知道大有可为答主
回答量:1554
采纳率:100%
帮助的人:2009万
展开全部
看你的account_a + account_b,显然这两个字段是字符型,ORACLE如果是字符串拼接,是不能用+的,如果这两个字段是字符型,那么+应该修改为||。
所以,既然从这个语句可以看出account_a + account_b这两个字段是数字型,那么||进行字符串拼接的时候,要求左右都是字符型,才会正确。
所以,你的||右边,不是字符型。而是数字型。ORACLE应该用TO_CHAR来把数字型转化成字符型。
dbms_output.put_line('转账前总余额:'||to_char(account_a+account_b));
这两个分开写,上面的那个写法,输出的结果是在两行,而下面,会使输入结果在一行中。
而且如果直接使用put_line,括号内可以是数字型,而第二个,则是字符数字混合,而其拼接的符号两遍也是两种类型,必然出错。
good_007_2000
2011-05-09 · TA获得超过223个赞
知道答主
回答量:144
采纳率:0%
帮助的人:117万
展开全部
dbms_output.put_line()显示的内容是有长度约束的,看dbms_output.put_line('转账前总余额:'||account_a+account_b);是不是因为字符串过长!理论上,这两组语句效果是一样的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式