首页 > 解决方案 > PLSQL 语句不检索数据库中存储的不同字符集(垃圾)数字类型

问题描述

桌子:

dummy_table
-------------------
min_value   number(25,4);
code        varchar2(10;  -->primary key

SQL

select d.min_value from dummy_table d where d.code='XYZ';

输出

1000.0000

PL_SQL 块

DECLARE

ar_min_value    NUMBER(25, 8);

BEGIN

 SELECT d.min_value into ar_min_value from dummy_table d where d.code='XYZ';

  dbms_output.put_line('ar_min_value :  ' || ar_min_value);
END;

输出

ORA-01722: invalid number

请有人告诉为什么普通 sql 语句可以轻松地将输出显示为 10000.0000 而当数据可用时,plsql 代码返回“ORA-01722:无效数字”。

这是否与字符集有关,以及为什么它在 SQL 中显示 1000.0000 而不是在 PLSQL 代码中。如果它与字符集有关,那么如何在 plsql 块中进行选择查询以显示 1000.0000。

标签: oracleplsqlcharacter-encoding

解决方案


推荐阅读