【问题标题】:PL/SQL: numeric or value errorPL/SQL:数值或数值错误
【发布时间】:2018-01-30 17:36:06
【问题描述】:

我正在尝试创建一个为其提供浮点参数的过程,但是当我使用 30.2 之类的值调用此过程时,它给了我这个错误。有什么解决办法吗?

create or replace procedure my_procedure (x in float) as
begin
   insert into my_table values (x);
end;

create table my_table (x float);

execute my_procedure(30.2);

【问题讨论】:

  • 没有示例代码——包括过程和调用者——几乎没有人可以提供帮助。
  • 一方面,您不需要使用“float”类型。只需使用“数字”。它同时处理整数和浮点数。
  • 在 Oracle 12.1.0.2、SQL*Plus 11.2 和 PL/SQL Developer 11.1 中运行良好。
  • 两个人无法使用您发布的代码重新创建错误。请张贴实际代码。如果您向我们提供真实代码,您很有可能会发现错误。
  • 如果您不发布可重现的测试用例,我们无能为力。

标签: sql oracle plsql oracle-sqldeveloper


【解决方案1】:

如果你使用数字而不是浮点数,它会起作用

CREATE OR REPLACE PROCEDURE my_procedure(x IN NUMBER)    
AS    
BEGIN    
  INSERT INTO my_table     
VALUES    
      (x
      );
END;
CREATE TABLE my_table
    (x NUMBER);

EXECUTE my_procedure(30.2);

【讨论】:

  • 对我不起作用,就好像他把参数30.2当成了一个字符……
猜你喜欢
  • 1970-01-01
  • 2023-03-09
  • 2016-10-12
  • 2012-02-19
  • 1970-01-01
  • 1970-01-01
  • 2014-04-25
  • 2014-06-13
相关资源
最近更新 更多