oracle 数据库plsql中的语句哪里写错了?
CREATEORREPLACEPROCEDUREMATERIALTYPEImportisV_MATERIALCNAMEVARCHAR2(64),--物料分类名称中间表V_...
CREATE OR REPLACE PROCEDURE MATERIALTYPEImport
is
V_MATERIALCNAME VARCHAR2(64),--物料分类名称中间表
V_MATERIALCCODE VARCHAR2(32),--物料分类编码中间表
M_MATERIALTYPEID VARCHAR2(36) ,--物料分类ID
M_CODE VARCHAR2(4) ,--物料分类码
M_LCODE VARCHAR2(40) ,--物料分类层级码
M_Letter VARCHAR2(40) ,--物料分类简称
M_STOPFLAG CHAR(1),--是否停用
M_UsedFLAG CHAR(1)--是否使用
begin
M_MATERIALTYPEID := select get_uuid() from dual;
M_CODE := '0001';
M_LCODE := '0001';
M_Letter := SELECT GETHZPY.GETHZPYCAP( M_CODENAME) FROM DUAL;
M_STOPFLAG := '0';
M_UsedFLAG := '0' ;
CURSOR C_EMP IS --声明显式游标
select distinct MATERIALCNAME from TGI_MATERIAL_IMPORT; -- 声明游标
C_ROW C_EMP%ROWTYPE;
begin
OPEN C_EMP;--必须要明确的打开和关闭游标
LOOP
FETCH C_EMP
INTO C_ROW;
EXIT WHEN C_EMP%NOTFOUND; --当没有记录时退出循环
--DBMS_OUTPUT.PUT_LINE(SUBSTR(vsql,C_ROW.PARTNUMBER, 200));
dbms_output.put_line(C_ROW);
-- 变量赋值
insert into ZJMES.CBD_MATERIALTYPE
values (M_MATERIALTYPEID,M_CODE,M_LCODE,C_ROW,M_Letter,M_STOPFLAG ,M_UsedFLAG)
END LOOP;
CLOSE C_EMP;
end;
end MATERIALTYPEImport ; 展开
is
V_MATERIALCNAME VARCHAR2(64),--物料分类名称中间表
V_MATERIALCCODE VARCHAR2(32),--物料分类编码中间表
M_MATERIALTYPEID VARCHAR2(36) ,--物料分类ID
M_CODE VARCHAR2(4) ,--物料分类码
M_LCODE VARCHAR2(40) ,--物料分类层级码
M_Letter VARCHAR2(40) ,--物料分类简称
M_STOPFLAG CHAR(1),--是否停用
M_UsedFLAG CHAR(1)--是否使用
begin
M_MATERIALTYPEID := select get_uuid() from dual;
M_CODE := '0001';
M_LCODE := '0001';
M_Letter := SELECT GETHZPY.GETHZPYCAP( M_CODENAME) FROM DUAL;
M_STOPFLAG := '0';
M_UsedFLAG := '0' ;
CURSOR C_EMP IS --声明显式游标
select distinct MATERIALCNAME from TGI_MATERIAL_IMPORT; -- 声明游标
C_ROW C_EMP%ROWTYPE;
begin
OPEN C_EMP;--必须要明确的打开和关闭游标
LOOP
FETCH C_EMP
INTO C_ROW;
EXIT WHEN C_EMP%NOTFOUND; --当没有记录时退出循环
--DBMS_OUTPUT.PUT_LINE(SUBSTR(vsql,C_ROW.PARTNUMBER, 200));
dbms_output.put_line(C_ROW);
-- 变量赋值
insert into ZJMES.CBD_MATERIALTYPE
values (M_MATERIALTYPEID,M_CODE,M_LCODE,C_ROW,M_Letter,M_STOPFLAG ,M_UsedFLAG)
END LOOP;
CLOSE C_EMP;
end;
end MATERIALTYPEImport ; 展开
2个回答
展开全部
这问题有点多。
CREATE OR REPLACE PROCEDURE MATERIALTYPEImport
(
--传入传出参数放这里,确认是传入IN还是传出OUT 还是都支持 IN OUT ,用逗号隔开
)
is
--局部变量申明放这里,用分号结尾
begin
--两个变量通过函数取值用下面的写法就可以了。
M_MATERIALTYPEID:= get_uuid();
M_Letter := GETHZPY.GETHZPYCAP( M_CODENAME) ;
--代码中这条语句也需要调整
--1、补充好字段避免报错,insert into 表名(字段1,字段2) values(值1,值2)
--2、语句最后缺了分号";"
insert into ZJMES.CBD_MATERIALTYPE
values (M_MATERIALTYPEID,M_CODE,M_LCODE,C_ROW,M_Letter,M_STOPFLAG ,M_UsedFLAG)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询