在用户提示下插入功能

时间:2019-01-08 10:26:16

标签: oracle plsql oracle-sqldeveloper

我正在尝试使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:

1 个答案:

答案 0 :(得分:2)

Oracle LENGTH函数具有以下语法:

  

LENGTH(string1)

您可以在此处找到更多相关信息:https://www.techonthenet.com/oracle/functions/length.php

在您的代码中,您应该编写以下内容,而不是IF CNP.LENGTH = 13

IF LENGTH(CNP) = 13

希望我能帮上忙!