0
ループを持つプロシージャを作成して、3つの異なるテーブル(FIRSTNAME、LASTNAME、およびLOCATION_DATA)の値を使用して、x個の異なる値を持つテーブルを作成しようとしています。しかし、私はエラーを受信し続ける:テーブルを作成するPL/SQLプロシージャ
Error(34,14): PLS-00103: Encountered the symbol "end-of-file" when expecting one of the following:
(begin case declare end exit for goto if loop mod null
pragma raise return select update while with <an identifier>
<a double-quoted delimited-identifier> <a bind variable> <<
continue close current delete fetch lock insert open rollback
savepoint set sql execute commit forall merge pipe purge.`
これは私がこれまで持っているものされています
CREATE OR REPLACE PROCEDURE LOOP_TEST
IS
FNLOOP int := 1;
LNLOOP int := 1;
LOCLOOP int := 1;
BEGIN
WHILE FNLoop <= (SELECT MAX(ID) FROM FIRSTNAME) LOOP
BEGIN
WHILE LNLoop <= (SELECT MAX(ID) FROM LASTNAME) LOOP
BEGIN
WHILE LOCLOOP <= (SELECT MAX(ID) FROM LOCATION_DATA) LOOP
BEGIN
SELECT
FirstName
, (SELECT LastName
FROM LASTNAME B
WHERE LNLOOP = B.ID)
, (SELECT City
FROM LOCATION_DATA C
WHERE LOCLOOP = C.ID)
, (SELECT State
FROM LOCATION_DATA C
WHERE LOCLOOP = C.ID)
INTO RANDOM_DATA
FROM FIRSTNAME A
WHERE FNLOOP = A.ID;
LOCLOOP := LOCLOOP + 1;
--WAITFOR DELAY '00:00:01'
END;
LNLOOP := LNLOOP + 1;
LOCLOOP := 1;
END LOOP;
FNLOOP := FNLOOP + 1;
LNLOOP := 1;
END LOOP;
END LOOP;
END LOOP_TEST;
は、事前にありがとうございます。
これが私のコードを慎重にフォーマットする理由です。不完全な開始/終了、ループ/終了ループなどのキーワードが飛び出します。 –
次の問題は、(WHILE FNLoop <=(SELECT MAX(ID)FROM FIRSTNAME) 'などの条件付きテストに暗黙カーソルを置くことができないということです。変数には' selectそれ以降の問題は、あなたが選択した 'RANDOM_DATA'レコードを宣言していないということです。 –
RANDOM_DATAテーブルのCREATE TABLEステートメントをすでに追加していることを忘れています。レコードを追加するには? –