create or replace procedure PTR_add_check (
mid varchar2 (50)
,UserID varchar2 (50)
,code varchar2 (50)
,Barcode varchar2 (50)
,Msg out varchar2 (100)) as
Qty number,
name varchar2 (50),
Package varchar2 (50)
begin
select name,Package into name,Package from "SYSTEM"."pt_wh_goods" where Barcode=Barcode
if SQL%rowcount =0
begin
Msg := '条码(' + ltrim(rtrim(Barcode)) + ')不存在!'
DBMS_OUTPUT.put_line(Msg);
end
select qty:=isnull(order_qty,0) from "SYSTEM"."pt_wh_add_items" where order_code=code and barcode=barcode
begin
if SQL%rowcount =0 then
qty:=0
Msg :=name+'('+Package+')' + ' 已下补货数量:' + cast(qty as varchar2(20))
DBMS_OUTPUT.put_line(Msg);
end
end;
mid varchar2 (50)
,UserID varchar2 (50)
,code varchar2 (50)
,Barcode varchar2 (50)
,Msg out varchar2 (100)) as
Qty number,
name varchar2 (50),
Package varchar2 (50)
begin
select name,Package into name,Package from "SYSTEM"."pt_wh_goods" where Barcode=Barcode
if SQL%rowcount =0
begin
Msg := '条码(' + ltrim(rtrim(Barcode)) + ')不存在!'
DBMS_OUTPUT.put_line(Msg);
end
select qty:=isnull(order_qty,0) from "SYSTEM"."pt_wh_add_items" where order_code=code and barcode=barcode
begin
if SQL%rowcount =0 then
qty:=0
Msg :=name+'('+Package+')' + ' 已下补货数量:' + cast(qty as varchar2(20))
DBMS_OUTPUT.put_line(Msg);
end
end;
表结构呢? 调用参数呢?业务逻辑也不说明一下?
行号= 3 列号= 18 错误文本= PLS-00103: 出现符号 "("在需要下列之一时: := . ) , @ % default character 符号 ":=" 被替换为 "(" 后继续。
行号= 4 列号= 18 错误文本= PLS-00103: 出现符号 "("在需要下列之一时: := . ) , @ % default character 符号 ":=" 被替换为 "(" 后继续。
行号= 5 列号= 19 错误文本= PLS-00103: 出现符号 "("在需要下列之一时: := . ) , @ % default character 符号 ":=" 被替换为 "(" 后继续。
行号= 6 列号= 21 错误文本= PLS-00103: 出现符号 "("在需要下列之一时: := . ) , @ % default character 符号 ":=" 被替换为 "(" 后继续。
行号= 9 列号= 13 错误文本= PLS-00103: 出现符号 ","在需要下列之一时: := . ( @ % ; not null range default character
这行报:行号= 9 列号= 13 错误文本= PLS-00103: 出现符号 ","在需要下列之一时: := . ( @ % ; not null range default character 这里出现了什么问题呢
Qty number,
name varchar2 (50),
Package varchar2 (50)
-->
Qty number;
name varchar2 (50);
Package varchar2 (50);
并且其他行,行结束符也是分号啊。
name varchar2 (50);
Package varchar2 (50);
beginPackage varchar2 (50);
这里报行号= 11 列号= 20 错误文本= PLS-00103: 出现符号 "("在需要下列之一时: is authid as
mid VARCHAR2,
UserID VARCHAR2,
code VARCHAR2,
Barcode VARCHAR2,
Msg out VARCHAR2) AS
Qty NUMBER;
v_name VARCHAR2(50);
v_package VARCHAR2(50);
BEGIN
SELECT name,Package INTO v_name,v_package FROM "SYSTEM"."pt_wh_goods" WHERE Barcode=Barcode;
IF SQL%rowcount = 0 THEN
Msg := '条码(' + ltrim(rtrim(Barcode)) + ')不存在!';
DBMS_OUTPUT.put_line(Msg);
END IF;
SELECT isnull(order_qty,0) INTO Qty FROM "SYSTEM"."pt_wh_add_items" WHERE order_code=code AND barcode=barcode;
IF SQL%rowcount = 0 THEN
qty := 0;
Msg := name+'('+Package+')' + ' 已下补货数量:' + qty;
DBMS_OUTPUT.put_line(Msg);
END IF;
end;SQL语句自己去调吧 我没有表!
按照你的方法编译通过了。这是sql2000的存储过程;
create procedure dbo.PTR_add_check (@mid VARCHAR(50)
,@UserID VARCHAR(50)
,@code VARCHAR(50)
,@Barcode VARCHAR(50)
,@Msg VARCHAR(100) output) as
declare @Qty int
declare @name varchar(50),@Package varchar(50) select @name=[name],@Package=Package from pt_wh_goods where Barcode=@Barcode
if @@rowcount =0
begin
set @Msg = '条码(' + ltrim(rtrim(@Barcode)) + ')不存在!'
return -1
end select @qty=isnull(order_qty,0) from pt_wh_add_items where order_code=@code and barcode=@barcode
if @@rowcount =0 set @qty=0 set @Msg =@name+'('+@Package+')' + ' 已下补货数量:' + cast(@qty as varchar(20))
RETURN 0这个是转成oracle的存储过程:CREATE OR REPLACE PROCEDURE "SYSTEM"."PTR_ADD_CHECK" (
mid varchar2
,UserID varchar2
,code varchar2
,Barcode varchar2
,Msg out varchar2 )
as
Qty number;
name varchar2 (50);
Package1 varchar2 (50); begin
select name,BARCODE into name,Package1 from "SYSTEM"."pt_wh_goods" where BARCODE=Barcode;
if SQL%rowcount =0 then
Msg := '条码(' + ltrim(rtrim(Barcode)) + ')不存在!';
DBMS_OUTPUT.put_line(Msg); end if ;
select NVL(order_qty,0) into qty from "SYSTEM"."pt_wh_add_items" where ORDER_CODE =code and BARCODE=barcode;
IF SQL%rowcount =0 THEN
qty:=0;
Msg :=name+'('+Package1+')' + ' 已下补货数量:' + qty ;
DBMS_OUTPUT.put_line(Msg);
END IF;
end;请问在oracle中 return -1
用什么来代替呢?
直接return 就可以了,跳出整个存储过程。