0

MYSQL でストアド プロシージャを作成する方法を学び始めたばかりで、障害にぶつかっています。

次のコードを書きました。

DELIMITER $$
DROP PROCEDURE IF EXISTS `emscribedx`.`countcodes` $$
CREATE PROCEDURE `emscribedx`.`countcodes` ()
BEGIN
declare doneprocessing int default 0;
declare thisaccount varchar(50);
declare countcursor cursor for select acct from patientid where patienttype='P';
declare continue handler for not found
set doneprocessing = 1;
Fetch countcursor into thisaccount;
Repeat
select * from doc_table where acct = thisaccount;
until doneprocessing = 1
END repeat;
close countcursor;
END $$

DELIMITER ;

repeat ステートメントの後に発生する select ステートメントの結果を表示したいと考えています。しかし、どうすればそれを行うことができますか?ストアド プロシージャを実行しても何も起こりませんか?

ありがとうございました、

エリオット

4

1 に答える 1

0

このプロシージャは単一のクエリの結果しか返すことができません。代わりにこれを使用してみませんか?

SELECT doc_table.* 
FROM doc_table 
INNER JOIN patientid
ON patientid.acct = doc_tableacct
WHERE patientid.patienttype='P';

必要に応じて、プロシージャ内に配置できます。

于 2012-05-11T21:10:07.130 に答える