CREATE OR REPLACE PROCEDURE UNFOLDBOM_LAST
(WODATE varchar2, CODE VARCHAR2)
AS
-- EXPORT数
ITEMCODE VARCHAR2(20);
WOCODE VARCHAR2(64);
WO_CODE VARCHAR2(64);
STUFFCODE VARCHAR2(20);
MANUALNO VARCHAR2(20);
STR_DATE VARCHAR2(10);
END_DATE VARCHAR2(10);
APPLYQTY NUMBER(18,8);
TRADECODE VARCHAR2(20);
ITEMCODECLASS VARCHAR2(20);
REGQTY NUMBER(18, 8);
FACTQTY NUMBER(18, 8);
BOMVER VARCHAR2(10);
iCount NUMBER;
-- 企业BOM数
BOMITEM VARCHAR2(20);
GROSSQTY NUMBER(18,8);
ITEMCODEDCLASS VARCHAR2(20); -- 外购
ITEMCODED VARCHAR2(20);
QTY NUMBER(18,8);
BEGINDATE date;
ENDDATE date;
LEAVE NUMBER(18,8);
ITEM_CODE_D1 VARCHAR2(20);
ITEMCODED1QTY NUMBER(18,8);
TID NUMBER(10);
begin
CREATE global temporary table ATEMPPROCESS
(
BMS_WO_ID number(18, 0) NOT NULL,
BMS_WO_CODE VARCHAR2(64) NULL,
BMS_WO_DATE VARCHAR2(32) NULL,
BMS_WO_OPEN_DATE VARCHAR2(32) NULL,
ITEM_CODE VARCHAR2(64) NOT NULL,
ITEM_CODE_CLASS VARCHAR2(20) NULL,
ITEM_CODE_D VARCHAR2(64) NOT NULL,
ITEM_CODE_D_CLASS VARCHAR2(20) NULL,
ITEM_CODE_REQ_QTY number(18, 8) NULL,
ITEM_CODE_FACT_QTY number(18, 8) NULL,
ITEM_CODE_D_REQ_QTY number(18, 8) NULL,
ITEM_CODE_D_FACT_QTY number(18, 8) NULL,
TYPE_CODE VARCHAR2(2) NOT NULL,
FLAG VARCHAR2(1) NULL,
STEP VARCHAR(10) NOT NULL
)这是我存储过程的前面的几行,运行到 CREATE global temporary table ATEMPPROCESS
这行总是报错,PROCEDURE BMSDB.UNFOLDBOM_LAST 编译错误错误:PLS-00103: 出现符号 "CREATE"在需要下列之一时:
begin case declare exit
for goto if loop mod null pragma raise return select update
while with <an identifier>
<a double-quoted delimited-identifier> <a bind variable> <<
close current delete fetch lock insert open rollback
savepoint set sql execute commit forall merge
<a single-quoted SQL string> pipe
行:34
独自解决不了,请指点
(WODATE varchar2, CODE VARCHAR2)
AS
-- EXPORT数
ITEMCODE VARCHAR2(20);
WOCODE VARCHAR2(64);
WO_CODE VARCHAR2(64);
STUFFCODE VARCHAR2(20);
MANUALNO VARCHAR2(20);
STR_DATE VARCHAR2(10);
END_DATE VARCHAR2(10);
APPLYQTY NUMBER(18,8);
TRADECODE VARCHAR2(20);
ITEMCODECLASS VARCHAR2(20);
REGQTY NUMBER(18, 8);
FACTQTY NUMBER(18, 8);
BOMVER VARCHAR2(10);
iCount NUMBER;
-- 企业BOM数
BOMITEM VARCHAR2(20);
GROSSQTY NUMBER(18,8);
ITEMCODEDCLASS VARCHAR2(20); -- 外购
ITEMCODED VARCHAR2(20);
QTY NUMBER(18,8);
BEGINDATE date;
ENDDATE date;
LEAVE NUMBER(18,8);
ITEM_CODE_D1 VARCHAR2(20);
ITEMCODED1QTY NUMBER(18,8);
TID NUMBER(10);
begin
CREATE global temporary table ATEMPPROCESS
(
BMS_WO_ID number(18, 0) NOT NULL,
BMS_WO_CODE VARCHAR2(64) NULL,
BMS_WO_DATE VARCHAR2(32) NULL,
BMS_WO_OPEN_DATE VARCHAR2(32) NULL,
ITEM_CODE VARCHAR2(64) NOT NULL,
ITEM_CODE_CLASS VARCHAR2(20) NULL,
ITEM_CODE_D VARCHAR2(64) NOT NULL,
ITEM_CODE_D_CLASS VARCHAR2(20) NULL,
ITEM_CODE_REQ_QTY number(18, 8) NULL,
ITEM_CODE_FACT_QTY number(18, 8) NULL,
ITEM_CODE_D_REQ_QTY number(18, 8) NULL,
ITEM_CODE_D_FACT_QTY number(18, 8) NULL,
TYPE_CODE VARCHAR2(2) NOT NULL,
FLAG VARCHAR2(1) NULL,
STEP VARCHAR(10) NOT NULL
)这是我存储过程的前面的几行,运行到 CREATE global temporary table ATEMPPROCESS
这行总是报错,PROCEDURE BMSDB.UNFOLDBOM_LAST 编译错误错误:PLS-00103: 出现符号 "CREATE"在需要下列之一时:
begin case declare exit
for goto if loop mod null pragma raise return select update
while with <an identifier>
<a double-quoted delimited-identifier> <a bind variable> <<
close current delete fetch lock insert open rollback
savepoint set sql execute commit forall merge
<a single-quoted SQL string> pipe
行:34
独自解决不了,请指点
然后用execute immediate来执行
可以用execute immediate来变通
BMS_WO_ID number(18, 0) NOT NULL,
BMS_WO_CODE VARCHAR2(64) NULL,
BMS_WO_DATE VARCHAR2(32) NULL,
BMS_WO_OPEN_DATE VARCHAR2(32) NULL,
ITEM_CODE VARCHAR2(64) NOT NULL,
ITEM_CODE_CLASS VARCHAR2(20) NULL,
ITEM_CODE_D VARCHAR2(64) NOT NULL,
ITEM_CODE_D_CLASS VARCHAR2(20) NULL,
ITEM_CODE_REQ_QTY number(18, 8) NULL,
ITEM_CODE_FACT_QTY number(18, 8) NULL,
ITEM_CODE_D_REQ_QTY number(18, 8) NULL,
ITEM_CODE_D_FACT_QTY number(18, 8) NULL,
TYPE_CODE VARCHAR2(2) NOT NULL,
FLAG VARCHAR2(1) NULL,
STEP VARCHAR(10) NOT NULL
)';end;