パラメータ化されたクエリを使用して、Oracle サーバーにインデックスを作成しようとしています。文字列連結を使用すればインデックスをうまく作成できるので、アカウントや権限の問題ではないと思います。エラーが発生します:
ORA-01036: illegal variable name/number
コードにエラーは見つかりませんが、何か不足していると確信しています。Oracle.DataAccess.dll バージョン 4.112.3.0 を使用しています。サーバーが報告するバージョンは「Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production」です。
1つを除いてすべてのパラメータを削除しようとしましたが、同じエラーが発生しました。1 つ以上のパラメーターを任意に組み合わせると、エラーが発生します。エラーは毎回必ず発生します。ウォッチを使用してパラメーターが正しく設定されていることを確認し、設定する前にパラメーターをクリアしようとしました。これまで何をしても、まだエラーが発生します。コードは次のとおりです。
using (OracleCommand mycom = new OracleCommand())
{
using (OracleConnection Connection = new OracleConnection(connectionString))
{
mycom.BindByName = true;
mycom.CommandText = "CREATE INDEX :indexname on :tablename (:colname)";
mycom.Parameters.Add("indexname", indexName);
mycom.Parameters.Add("tablename", tableName);
mycom.Parameters.Add("colname", colName);
mycom.Connection = Connection;
mycom.CommandType = CommandType.Text;
mycom.Connection.Open();
mycom.ExecuteNonQuery();
}
}