Oracle:字符到数字的转换e

时间:2017-04-21 20:14:12

标签: sql plsql

我正在使用Oracle SQL Developer。我是学生。当我使用参数PRICE NUMBER(5,2)插入表并插入插入12.23时,我可以执行此操作。但是,当我使用此NUMBER ( I put PRODUCTS.PRICE%TYPE )执行某个过程时,执行INSERT_PRODUCT(12.23)会显示下一个错误...

  

PL / SQL:数字或值错误:字符到数字转换错误

     

ORA-06512:第1行       06502. 00000 - “PL / SQL:数字或值错误%s”       *原因:算术,数字,字符串,转换或约束错误                  发生了。例如,如果尝试,则会发生此错误                  将值NULL赋给声明为NOT NULL的变量,或者如果是                  尝试将大于99的整数分配给变量                  宣布NUMBER(2)。

问题是PRECIO和IVA,在表中它们是NUMBER(x,x)

CREATE TABLE PRODUCTOS
(
    OID_P NUMBER(5) PRIMARY KEY,
    PRECIO NUMBER(6,2),
    IVA NUMBER(3,2), CHECK(IVA>=0 AND IVA<=1),
    CODIGO VARCHAR(10) NOT NULL UNIQUE,
    CONCEPTO VARCHAR(20)
);

程序......

CREATE OR REPLACE PROCEDURE INSERTAR_PRODUCTO
(
     W_PRECIO IN PRODUCTOS.PRECIO%TYPE,
     W_IVA IN PRODUCTOS.IVA%TYPE,
     W_CODIGO IN PRODUCTOS.CODIGO%TYPE,
     W_CONCEPTO IN PRODUCTOS.CONCEPTO%TYPE
)
    IS
    BEGIN
        INSERT INTO PRODUCTOS (PRECIO, IVA, CODIGO, CONCEPTO)
        VALUES (W_PRECIO, W_IVA, W_CODIGO, W_CONCEPTO);
    END;

我用execute

打电话
INSERTAR_PRODUCTO(12.23, 0.15, '123122', 'chandal');

我不知道如何解决这个问题。对不起我的英语不好。谢谢。

0 个答案:

没有答案