3

これは私の宿題の課題の1つです。

DEFINE countryid = CA
DECLARE 
country_record countries%ROWTYPE;
BEGIN
  SELECT *
  INTO country_record
  FROM countries
  WHERE country_id = '&countryid';
END;

タスク要件に従って、countryidはdefineステートメントを使用して宣言し、デフォルト値CAを指定する必要があります。次に、ユーザーが入力した値に基づいてselectを実行する必要があります。
スクリプトを実行すると4つのエラーが発生し、コメントアウトするとDEFINE countryid=CAスクリプトが正常に実行されます。
私の質問: PL / SQL Developerでdefineステートメントを使用できますか?
もしそうなら、私が間違っていることと、適切な使用法を提案できますか?

編集:次のエラーが発生します:

ORA-06550 row 3 column 8
PLS-00201 identificator 'COUNTRY_RECORD' have to be declared
ORA-06550 row 4 column 3
PL/SQL ORA-00904: invalid identificator
ORA-06550 row 2 column 3
PL/SQL SQL statement ignored
4

3 に答える 3

8

DEFINE は SQLPLUS のものであり、コマンド ウィンドウ以外の PLSQL Developer ではサポートされていません。sql / testウィンドウの場合は、それを削除するだけです(&が表示され、そのように定義するためのポップアップが表示されます).

于 2012-11-29T12:22:14.617 に答える
0

PLSQL Developerでは、このコードを使用できますが、コマンドウィンドウを使用します。

DEFINE countryid ='CA' DECLARE country_recordcountries%ROWTYPE; BEGIN SELECT * INTO country_record FROMcountries WHERE country_id ='&countryid'; 終わり;

于 2012-11-29T19:31:43.233 に答える
0
DEFINE countryid = CA
DECLARE 
country_record countries%ROWTYPE;
BEGIN
  SELECT *
  INTO country_record
  FROM countries
  WHERE country_id = :countryid;
END;
于 2016-11-17T17:01:49.210 に答える