2014-06-24 101 views
0

我试图在用Java调用的Sybase数据库中创建一个存储过程,并获取填充2个独立表的输入参数;一些争论进入两者,一些只进入其中一个表格。创建存储过程错误Sybase

这里是我的存储过程的代码:

Create procedure dbo.ps_bau_insert (in userID varChar(8), in busReason varChar(800), in weekID Integer, 
           in qScript varChar(800), in success BIT, in rowsAffected varChar(100)) 

      BEGIN 

      Insert into dbo.tbau_request_details 
      (weekID, userID, Date, qScript, BusReason, Success, Rows) 
      values (weekID, userID, getDate(), qScript, busReason, success, rowsAffected) 
      Insert into dbo.tbau_request_cm 
      (userID, Date, BusReason, Success, Rows) 
      values (userID, getDate(), busReason, success, rowsAffected); 
      End 

,我发现了错误:

Error report - 
Incorrect syntax near the keyword 'BEGIN'. 

至于我可以看到(通过查看Sybase文档)语法是正确的;错误陈述另有说明。有人能帮我看看这里有什么不正确吗?

谢谢!

回答

4

如果您使用的是Sybase ASE,则需要在BEGIN之前有一个AS。

http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc00801.1520/html/iqrefso/X315708.htm指的是这样的:

Syntax

This subset of the Transact-SQL CREATE PROCEDURE statement is supported in Sybase IQ:

CREATE PROCEDURE [ owner.]procedure_name

… [ [ (] @parameter_name data-type [ = default ] [ OUTPUT ] [ , … ] [) ] ]

…[ WITH RECOMPILE ]

… AS

… statement-list