2016-05-24 8 views
0
CREATE OR REPLACE 
PROCEDURE CONDITIONPROCEDURE(INPUT CONDITION CCONDITION.CONDITION%TYPE) 
as 
C.NAME%TYPE 
CC.CONDITION%TYPE 

BEGIN 
SELECT NAME, CONDITION 
INTO C_NAME, CC_CONDITION 
FROM CLIENT, CCONDITION 
WHERE CC_CONDITION = 'acrophobia' 

DMBS_OUTPUT.PUT_LINE('CLIENT HAS ACROPHOBIA OR HEART CONDITION) 

これまでのところ、私のコードはこれに似ていますが、これは私の質問に答えるのが正しいかどうかは分かりません。SQL入力が無効な入力であるかどうかを確認する手順

「心臓病や嫌悪感を持たないクライアントの連絡先の詳細を表示するストアドプロシージャを作成する」という質問があります。

テーブルの参照は、私はちょうど何かアドバイス/読み取りがはるかに高く評価されるだろうので、SQLを勉強してい

CLIENT (ClientNo, Name, Sex, DOB, Address, Phone, Email, Occupation, 
    MaritalStatus, Spouse, Anniversary) 
    CCONDITION (ClientNo, Condition) 

として表示されます。

+4

使用しているdbmsにタグを付けます。 (そのコードは製品固有のようです) – jarlh

答えて

0

最初に、「萎縮症」または「心臓病」が検出されていないクライアントを選択する適切なクエリが必要です。 NOT EXISTS(相関サブクエリ)はこちら

SELECT NAME, CONDITION 
FROM CLIENT c 
WHERE NOT EXISTS (
     SELECT 1 
     FROM CCONDITION cond 
     WHERE cond.ClientNo = c.ClientNo 
      AND cond.CC_CONDITION IN ('acrophobia', 'heart condition')) 

次のステップの適切なツールは、DBMS、特定のDBMSとは何のproc返さなければならないためのオプションの数を持っている手順にこのクエリをラップされています。たとえば、refcursorを返すか、あるいはPipelined Table FunctionをOracleに作成することができます。

関連する問題