Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 错误ORA-06550 ORA-00933_Sql_Oracle_Ora 00933_Ora 06550 - Fatal编程技术网

Sql 错误ORA-06550 ORA-00933

Sql 错误ORA-06550 ORA-00933,sql,oracle,ora-00933,ora-06550,Sql,Oracle,Ora 00933,Ora 06550,我有一张销售表: Name Null? Type SALE_ID NOT NULL NUMBER(4) SALE_DATE DATE NO_OF_PRODS NUMBER(4) PROD_ID NOT NULL NUMBER(4) CUST_ID NOT NULL NUMBER(4) DESP_ID NOT N

我有一张销售表:

    Name         Null?      Type  
SALE_ID         NOT NULL  NUMBER(4)  
SALE_DATE                 DATE  
NO_OF_PRODS               NUMBER(4)  
PROD_ID         NOT NULL  NUMBER(4)  
CUST_ID         NOT NULL  NUMBER(4)  
DESP_ID         NOT NULL  NUMBER(4)  
SALE_RECEIPT    NOT NULL  NUMBER(5) 
我试图将随机生成的数据插入sales表。我正在为oracle使用iSQL plus。这只是我必须创建的测试数据。 我运行以下脚本来生成数据:

begin
insert into sales
select sale_id_seq.nextval,
       sysdate,
       trunc(dbms_random.value(000,999)),
       p.prod_id, c.cust_id 
       FROM dba_xy.product p, dba_xy.customer c,
       desp_id_seq.nextval,
           trunc(dbms_random.value(0000,9999));
结束; /

但当我这样做时,会出现以下错误消息:

trunc(dbms_random.value(0000,9999));
                *
第9行错误: ORA-06550:第9行第21列: PL/SQL:ORA-00933:SQL命令未正确结束 ORA-06550:第2行第2列: PL/SQL:SQL语句被忽略

我做错了什么

我刚刚意识到Dispatch_ID是sales表中的外键,但目前Dispatch表是空的,当我尝试将数据插入其中一个表时,我无法导致一个表需要来自另一个表的数据。我最终收到以下错误消息:

PL/SQL: ORA-02289: sequence does not exist 

您不能从中选择

FROM dba_xy.product p, dba_xy.customer c,
   desp_id_seq.nextval,
       trunc(dbms_random.value(0000,9999));
尝试:


顺便说一句,你确定你想要一个笛卡尔积,也许错过了一些连接

笛卡尔?嗯,这是什么意思?这是交叉连接或笛卡尔连接。看看这里:当其中一个外键尚未加载数据时,我如何将数据加载到表中?DESP_ID?它的简称是什么?您可能应该首先将数据插入到以DESP_ID作为主键的表中。这是的重复项,不可能重复
insert into sales
(select 
   sale_id_seq.nextval,
   sysdate,
   trunc(dbms_random.value(000,999)),
   p.prod_id, 
   c.cust_id, 
   desp_id_seq.nextval,
   trunc(dbms_random.value(0000,9999))
   FROM dba_xy.product p, dba_xy.customer c;