我正在尝试使Oracle函数与Oracle SQL Developer一起使用,以便用户可以从键盘上输入cnp
,并且如果cnp
的大小为= 13,则将其插入表中用户已加载。如果不是= 13,则会显示一条消息。
我做了这份工作,但它显示了我的错误..我尝试过,我记录了下来,但没有找到我错的地方。
这是我的表,在介绍完表中的其余属性之后,现在我只想cnp
添加它。:
CREATE TABLE CLIENT (
CODCLIENT NUMBER,
NUMECLIENT VARCHAR2(10),
PRENUMECLIENT VARCHAR2(15),
CNPCLIENT VARCHAR2(13),
SERIECLIENT VARCHAR2(2),
NUMARID VARCHAR2(6),
SEX VARCHAR2(10) CONSTRAINT NN_SEXC NOT NULL CONSTRAINT CK_SEXC CHECK((SEX) IN('MASCULIN','FEMININ')),
ADRESA VARCHAR2(100),
EMAIL VARCHAR2(50),
TELEFON VARCHAR2(13),
CONSTRAINT PK_CODCLIENT PRIMARY KEY (CODCLIENT)
);
这是显示的错误:
old:DECLARE
CNP varchar2(13);
BEGIN
CNP := '&X' ;
IF CNP.LENGTH = 13 THEN
INSERT INTO CLIENT(CNPCLIENT) VALUES(CNP);
ELSE
DBMS_OUTPUT.PUT_LINE('CNP INCORECT');
END IF;
END;
new:DECLARE
CNP varchar2(13);
BEGIN
CNP := '23241415151' ;
IF CNP.LENGTH = 13 THEN
INSERT INTO CLIENT(CNPCLIENT) VALUES(CNP);
ELSE
DBMS_OUTPUT.PUT_LINE('CNP INCORECT');
END IF;
END;
Error starting at line : 30 in command -
DECLARE
CNP varchar2(13);
BEGIN
CNP := '&X' ;
IF CNP.LENGTH = 13 THEN
INSERT INTO CLIENT(CNPCLIENT) VALUES(CNP);
ELSE
DBMS_OUTPUT.PUT_LINE('CNP INCORECT');
END IF;
END;
Error report -
ORA-06550: line 7, column 12:
PLS-00487: Invalid reference to variable 'CNP'
ORA-06550: line 7, column 5:
PL/SQL: Statement ignored
06550. 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.
*Action:
答案 0 :(得分:2)
Oracle LENGTH
函数具有以下语法:
LENGTH(string1)
您可以在此处找到更多相关信息:https://www.techonthenet.com/oracle/functions/length.php
在您的代码中,您应该编写以下内容,而不是IF CNP.LENGTH = 13
:
IF LENGTH(CNP) = 13
希望我能帮上忙!