+ -
当前位置:首页 → 问答吧 → 为什么我的oracle存储过程编译报错呢?

为什么我的oracle存储过程编译报错呢?

时间:2011-09-20

来源:互联网



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;

作者: tiandi_030   发布时间: 2011-09-20

就这么扔出来一个PRC,报错信息呢?
表结构呢? 调用参数呢?

业务逻辑也不说明一下?

作者: coolkisses   发布时间: 2011-09-20

我建立存储过程,报编译错误,

作者: tiandi_030   发布时间: 2011-09-20

行号= 2 列号= 15 错误文本= PLS-00103: 出现符号 "("在需要下列之一时: := . ) , @ % default character 符号 ":=" 被替换为 "(" 后继续。 
行号= 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 

作者: tiandi_030   发布时间: 2011-09-20

不要指定参数的类型长度

作者: wzp1986   发布时间: 2011-09-20

Qty number,
这行报:

行号= 9 列号= 13 错误文本= PLS-00103: 出现符号 ","在需要下列之一时: := . ( @ % ; not null range default character  

这里出现了什么问题呢
 

作者: tiandi_030   发布时间: 2011-09-20

这几行,都应该是以分号结尾啊:
  Qty number,
  name varchar2 (50),
  Package varchar2 (50)
-->
  Qty number;
  name varchar2 (50);
  Package varchar2 (50);
并且其他行,行结束符也是分号啊。

作者: yixilan   发布时间: 2011-09-20

Qty number;
  name varchar2 (50);
  Package varchar2 (50);
begin

Package varchar2 (50);
这里报

行号= 11 列号= 20 错误文本= PLS-00103: 出现符号 "("在需要下列之一时: is authid as 

作者: tiandi_030   发布时间: 2011-09-20

哎,要把mssql的存储过程导入到oracle中,oracle有没学过,痛苦呀!

作者: tiandi_030   发布时间: 2011-09-20

create or replace procedure PTR_add_check (
 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语句自己去调吧 我没有表!

作者: cocolmalu   发布时间: 2011-09-20

热门下载

更多