execute_sql
一連のターゲットに対してSQLコマンドを実行します。
書式
emcli execute_sql
-sql=<sql_command>
-targets=<name1:type1;name2:type2;...>
-credential_set_name=<name>
[-input_file=<parameter_tag:script_file>]
[ ] indicates that the parameter is optionalオプション
-
sql
sql commandは、1つのSQL文です。
-
targets
ターゲット名とターゲット・タイプのペアのリストです。SQLコマンドは、このリストのEnterprise Managerターゲットに対して実行されます。すべてのターゲットは、ターゲットのグループを表す
oracle_databaseまたはcompositeタイプである必要があります。グループの場合、グループはすべてのデータベース・ターゲットを抽出するように展開され、SQLコマンドはそれらのデータベース・ターゲットに対して実行されます。 -
credential_set_name
Enterprise Managerリポジトリに格納されている優先資格証明のセット名を参照します。このオプションがない場合、SQLコマンドの実行には
DBCredsNormalおよびDBHostCreds資格証明セットが使用されます。どちらのターゲット・タイプにも、複数の資格証明セットがあります。-
HostCredsNormal - ホスト・ターゲットに対するデフォルトの権限のない資格証明セット
-
HostCredsPriv - ホスト・ターゲットに対する権限付きの資格証明セット
-
DBHostCreds -
oracle_databaseターゲット用のホスト資格証明セット -
DBCredsNormal - oracle_databaseターゲット用のデフォルトの標準資格証明セット
-
DBCredsSYSDBA -
oracle_databaseターゲット用のsysdba資格証明セット
credential_set_nameパラメータは、[db_|host_]usernameや[db_|host_]passwordなどの資格証明の上書きパラメータがない場合のみ指定できます。指定されている場合、資格証明の上書きパラメータを完全に指定する必要があります。SQLコマンドの場合、db_username、db_password、db_role、host_usernameおよびhost_passwordが必要です。 -
-
input_file
-sqlオプションとともに使用すると、SQLスクリプトの内容をロードできます。-input_fileオプションでは、タグとローカルのファイル・パス間のマッピングを指定します。タグは、-sqlの実際のSQLコマンドのかわりに指定します。タグにはコロン(:)とセミコロン(;)は使用できません。input_fileパラメータの詳細は、「-input_fileの構文ガイドライン」を参照してください。
例
例1
この例では、ターゲットdatabase:oracle_databaseおよびグループgrpに含まれるデータベース・ターゲットに対してSQLコマンドselect * from sysman.mgmt_targets;を実行します。すべてのターゲットに対して、格納されているSYSDBA優先資格証明が使用されます。
emcli execute_sql
-sql="select * from sysman.mgmt_targets;"
-credential_set_name="DBCredsSYSDBA"
-targets="database:oracle_database;grp:composite"
例2
この例では、スクリプト/scratch/dba_scripts/enterprise_schema.sqlの内容を-sqlの値にロードし、ターゲットdatabase:oracle_databaseおよびグループgrpに含まれるデータベース・ターゲットに対して実行します。すべてのターゲットに対して、格納されているSYSDBA優先資格証明が使用されます。
emcli execute_sql
-sql="FILE"
-input_file="FILE:/scratch/dba_scripts/enterprise_schema.sql"
-credential_set_name="DBCredsSYSDBA"
-targets="database:oracle_database;grp:composite"