変数と言うより結局「実行前の置き換え」です。 定義せずに使った場合 SQL> select * from &TABLE_NAME; table_nameに値を入力してください: ※ 入力を求められる 事前に定義してデータをセット SQL> DEFINE TABLE_NAME = 社員マスタ SQL> select * from &TABLE_NAME; ※ 入力は求められません ※ 再設定でも使います 意図的に変数に入力する SQL> ACCEPT TABLE_NAME 変数の内容表示 SQL> PROMPT &TABLE_NAME 社員マスタ スクリプト内部での利用例
-- 置換変数による表定義表示 COLUMN COLUMN_NAME FORMAT A40 HEADING '列名' COLUMN DATA_TYPE FORMAT A10 HEADING 'データ型' COLUMN NULLABLE FORMAT A4 HEADING 'NULL' select COLUMN_NAME,DATA_TYPE,NULLABLE from USER_TAB_COLUMNS where TABLE_NAME = '&TARGET_TABLE';
スクリプトへの引数
-- 置換変数による表定義表示 COLUMN COLUMN_NAME FORMAT A40 HEADING '&1.列名' COLUMN DATA_TYPE FORMAT A10 HEADING 'データ型' COLUMN NULLABLE FORMAT A4 HEADING 'NULL' select COLUMN_NAME,DATA_TYPE,NULLABLE from USER_TAB_COLUMNS where TABLE_NAME = '&1';
置換変数に続けて文字列を指定したい場合は、.で繋げます( 変数の終わりをインタープリタに知らせる為です )
社員マスタ列名 データ型 NULL ---------------------------------------- ---------- ---- 社員コード VARCHAR2 N 氏名 VARCHAR2 Y フリガナ VARCHAR2 Y 所属 VARCHAR2 Y 性別 NUMBER Y 作成日 DATE Y 更新日 DATE Y 給与 NUMBER Y 手当 NUMBER Y 管理者 VARCHAR2 Y 生年月日 DATE Y 11行が選択されました。
|
【Oracleの最新記事】
- Oracle : sqlplus で、テーブルの create 文( DBMS_METADATA.GET_DDL ) と csv データを出力する
- Oracle : SQL Plus で、デッドロックテスト ( ORA-00060 )
- SQL*Plusだけで CSV を作成する
- Oracle XE インストール後の環境情報( Windows )
- Oracle11g XE( 無償 ) のインストールからテスト用販売管理データのロードまで
- Oracle Database 11g のJDBC実装では、SIDを使用したデータベースURL接続文字列は廃止されています
- Oracle : スキーマ作成前にテーブルスペースの情報を取得する
- Oracle : 既存スキーマの状態をチェック
- サービス開始 : Oracle 10g Express
- Oracle 10g Express Edition のインストール
- Oracle : 貴重な擬似列 ROWID