Oracleのテーブルからすべてのデータを取得するために、単純なselectステートメントを実行しようとしています。進行中のプロジェクトの性質上、テーブルは常に更新および変更されているため、堅実な設計はありません。
私は簡単な声明を探しています。これだけで十分です。
Select * from myVariable
検索した後、これをコンパイルしました
create or replace procedure "GET_TABLEINFO" (o_rc OUT sys_refcursor, inTableName IN varchar2) AS
BEGIN
execute immediate
'SELECT * FROM '||inTableName
using inTableName;
END;
しかし、それをデータテーブルに追加しようとすると:
using (OracleConnection cn = new OracleConnection(connectionString))
{
OracleDataAdapter da = new OracleDataAdapter();
OracleCommand cmd = new OracleCommand();
cmd.Connection = cn;
cmd.InitialLONGFetchSize = 1000;
cmd.CommandText = "GET_TABLEINFO";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("o_rc", OracleDbType.RefCursor, ParameterDirection.Output);
cmd.Parameters.Add("inTable", OracleDbType.Varchar2, 60, inTableName, ParameterDirection.Input);
da.SelectCommand = cmd;
da.Fill(dt);
私はこれを得る
編集:
カーソルの設定方法がわかりません(初めてOracleを使用する場合、通常はSQLSERVERを使用します)。手順は簡単である必要があります。テーブル名を渡し、そのテーブルからデータを取得する必要があります。空想も、where句もありません。
ORA-01006: バインド変数が存在しません ORA-06512: "ODS_DEV.GET_TABLEINFO"、4 行目 ORA-06512: 1 行目