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"