我正在使用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');
我不知道如何解决这个问题。对不起我的英语不好。谢谢。