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);为什么要分开来写?下面的执行出错,上面分开来写就没问题,请问这是为什么啊 展开
dbms_output.put_line(account_a+account_b);
和dbms_output.put_line('转账前总余额:'||account_a+account_b);为什么要分开来写?下面的执行出错,上面分开来写就没问题,请问这是为什么啊 展开
2个回答
展开全部
看你的account_a + account_b,显然这两个字段是字符型,ORACLE如果是字符串拼接,是不能用+的,如果这两个字段是字符型,那么+应该修改为||。
所以,既然从这个语句可以看出account_a + account_b这两个字段是数字型,那么||进行字符串拼接的时候,要求左右都是字符型,才会正确。
所以,你的||右边,不是字符型。而是数字型。ORACLE应该用TO_CHAR来把数字型转化成字符型。
dbms_output.put_line('转账前总余额:'||to_char(account_a+account_b));
这两个分开写,上面的那个写法,输出的结果是在两行,而下面,会使输入结果在一行中。
而且如果直接使用put_line,括号内可以是数字型,而第二个,则是字符数字混合,而其拼接的符号两遍也是两种类型,必然出错。
所以,既然从这个语句可以看出account_a + account_b这两个字段是数字型,那么||进行字符串拼接的时候,要求左右都是字符型,才会正确。
所以,你的||右边,不是字符型。而是数字型。ORACLE应该用TO_CHAR来把数字型转化成字符型。
dbms_output.put_line('转账前总余额:'||to_char(account_a+account_b));
这两个分开写,上面的那个写法,输出的结果是在两行,而下面,会使输入结果在一行中。
而且如果直接使用put_line,括号内可以是数字型,而第二个,则是字符数字混合,而其拼接的符号两遍也是两种类型,必然出错。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询