13

Oracle 10g PL/SQL ブロック (つまり、ユーザーとの対話型通信) でユーザーからランタイム入力を取得したいと考えています。出来ますか?

declare
x number;
begin
x=&x;
end

このコードは次のようにエラーを出します

& は oracle 10g では使用できません

4

11 に答える 11

25

ユーザー入力を読み取って変数に格納し、後で使用できるようにするには、SQL*Plus コマンドを使用できますACCEPT

Accept <your variable> <variable type if needed [number|char|date]> prompt 'message'

accept x number prompt 'Please enter something: '

そして、x次のように PL/SQL ブロックで変数を使用できます。

declare 
  a number;
begin
  a := &x;
end;
/

文字列の例での作業:

accept x char prompt 'Please enter something: '

declare 
  a varchar2(10);
begin
  a := '&x';   -- for a substitution variable of char data type 
end;           -- to be treated as a character string it needs
/              -- to be enclosed with single quotation marks
于 2012-09-20T16:52:14.407 に答える
-4

これを試して

declare 
  a number;
begin
  a := :a;
dbms_output.put_line('Inputed Number is >> '|| a);
end;
/  

OR

declare 
  a number;
begin
  a := :x;
dbms_output.put_line('Inputed Number is >> '|| a);
end;
/
于 2015-09-26T04:32:07.747 に答える
-7

とてもシンプルです

書くだけ:

// 最初に test.... という名前のテーブルを作成します。

create table test (name varchar2(10),age number(5));

//上記のコードを実行すると、テーブルが作成されます....

//ここで、名前と年齢を挿入する必要があります..

値を入力するために私たちの助けを求めるフォームを開いて、年齢が挿入されることを確認してください

insert into test values('Deepak', :age);

// 上記のコードを実行すると、「1 行が挿入されました」という出力が得られます...

/今、選択クエリを実行して出力を確認します

select * from test;

//以上です..これで、ユーザーデータを受け入れるクエリが残っている人はいないと思います...

于 2013-02-12T17:54:46.463 に答える