1
CREATE PROCEDURE getNumbers
(
@dName VARCHAR(20),
@iNum INT OUTPUT,
@sNum INT OUTPUT
)
AS
BEGIN
@iNum=SELECT count(i.ID) FROM instructor WHERE dept_name=@dName
@sNum=SELECT count(s.ID) FROM student AS s WHERE dept_name=@dName
END

これは、ストアド プロシージャを作成する最初の試みです。@dName VARCHAR(20), という行の構文でエラーが発生し続けます。

他の問題を調べて解決策を試しましたが、何も機能しません!

4

2 に答える 2

1

このフォームを試してください:

CREATE PROCEDURE getNumbers
@dName VARCHAR(20),
@iNum INT OUTPUT,
@sNum INT OUTPUT
AS
BEGIN
于 2013-03-07T06:49:27.767 に答える
1

それはMSSQLですか?その場合、括弧を使用する必要はなく、次の構文を使用して変数を割り当てる必要があります。

CREATE PROCEDURE getNumbers
@dName VARCHAR(20),
@iNum INT OUTPUT,
@sNum INT OUTPUT
AS
BEGIN
SELECT @iNum=count(i.ID) FROM instructor WHERE dept_name=@dName;
SELECT @sNum=count(s.ID) FROM student AS s WHERE dept_name=@dName;
END

MYSqlで行う場合

DELIMITER $$     
CREATE PROCEDURE getNumbers(
    IN dName VARCHAR(20),
    OUT iNum INT,
    OUT sNum INT)
    BEGIN
    SELECT count(i.ID)  INTO iNum FROM instructor WHERE dept_name=dName;
    SELECT count(s.ID) INTO sNum FROM student AS s WHERE dept_name=dName;
    END$$ 

DELIMITER ; 
于 2013-03-07T06:49:44.583 に答える