0

テーブルの名前の入力をユーザーに求めるSQLを提供しています。このSQLは、列名、データ型、データ長、データ精度のレポートを提供し、特定のテーブルにnullが許可されているかどうかを示します。

これが私が実行しているクエリです:

SELECT employee_id, first_name, last_name
FROM employees
GROUP BY employee_id;

select department_id where employee_id = :table_name;


set echo

(select column_name, data_type, data_length,
data_precision, data_scale, nullable
from all_tab_columns
where table_name = 'employees'
order by column_name);

ユーザーがテーブル名を入力することになっているウィンドウが表示されますが、2番目のselectステートメントが実行に失敗します。それは思い付くORA-00933: sql command not properly ended。2番目のselectステートメントを個別に実行すると、no data foundメッセージが表示されます。

4

2 に答える 2

1

まず、このクエリにはテーブル名がありません:

select department_id where employee_id = :table_name;

次のようになります。

select department_id from employees where employee_id = :table_name;

2番

set echo

エラーが表示されます:

SP2-0265: エコーはオンまたはオフに設定する必要があります

ONそのコマンドにまたはOFFパラメータを追加する必要があります。例えば ​​:

set echo ON;

詳細:エコーを設定

三番:

select column_name, data_type, data_length,
data_precision, data_scale, nullable
from all_tab_columns
where table_name = 'employees'
order by column_name

たぶん where 句の比較では大文字と小文字が区別されます。

これを試して:

select column_name, data_type, data_length,
data_precision, data_scale, nullable
from all_tab_columns
where lower(table_name) = 'employees'
order by column_name
于 2013-03-24T06:45:03.130 に答える
0

あなたのselect department_id where employee_id = :table_name;

間違っている。

テーブルはfrom句で指定されます。

ありがとう

于 2013-03-24T03:33:43.463 に答える