我在SQL中遇到一个过程问题,我现在不知道错误的含义

问题描述 投票:0回答:1

我们有两个表:客户和客户创建表客户端(NumClient NUMBER(3)NOT NULL PRIMARY KEY,ClientName VARCHAR(25)NOT NULL,城市VARCHAR(25)非空);

CREATE TABLE Compte(NumCompte NUMBER(1)NOT NULL PRIMARY KEY,NumClient NUMBER(3)非空引用Client(NumClient),DateOpening DATE NOT NULL,余额浮动PMVR NUMBER DEFAULT 0);

我的过程如下:

OpenAccount(数量为数字,数量为数字)此过程为客户(NumCli)创建了一个具有第一笔余额(金额)的新帐户:

-NumCaccount由序列自动分配;

-DateOpen是系统日期;

-金额> 0;

-PMVR初始化为0;

-如果客户不存在,则错误。

我有一个称为:的序列]

CREATE SEQUENCE seqClient START WITH 101 INCREMENT BY 1;    

CREATE SEQUENCE seqAccount START WITH 1 INCREMENT BY 1; 

CREATE OR REPLACE PROCEDURE OpenAccount(NumCli IN NUMBER, Amount in NUMBER)
IS
    non-existent_client EXCEPTION;
   PRAGMA EXCEPTION_INIT (non-existent_client, -2291);
BEGIN
   IF (Amount < 0)
   THEN
      RAISE_APPLICATION_ERROR (-20002,'the amount must be greater than 0');
   ELSE
      INSERT INTO Account (AccountNumber,
                           ClientNumber,
                           DateOpening date,
                           Balance,
                           PMVR)
           VALUES (seqCount.NEXTVAL,
                   NumCli,
                   TO_DATE (sysdate,'DD.MM.YY'),
                   Amount,
                   0);
   END IF;
EXCEPTION
   WHEN 
    non-existent_customer
   THEN
      DBMS_OUTPUT.PUT_LINE (
         Client No' ||| TO_CHAR (NumCli) ||| ' non-existent');
   WHEN OTHERS
   THEN
      DBMS_OUTPUT.PUT_LINE (
         Oracle error:' |||| SQLCODE ||| '; Oracle message: ||||| SQLERRM);
END;

 execute OpenAccount(101,1600);

Translated with www.DeepL.com/Translator (free version)

我收到此错误:

9/9 PL / SQL:忽略了SQL语句10/81 PL / SQL:ORA-00984:此处不允许使用该列

我们有两个表:Account和Client CREATE TABLE Client(NumClient NUMBER(3)NOT NULL PRIMARY KEY,ClientName VARCHAR(25)NOT NULL,City VARCHAR(25)...

sql plsql plsqldeveloper plsql-package
1个回答
1
投票
一些反对意见:

    这似乎不是完整的代码。
  • What
© www.soinside.com 2019 - 2024. All rights reserved.