BLTはOracleストアドプロシージャをサポートしていますか?私は多くの方法を試してきましたが、それは動作するようにするために以下に説明されていますが、運がない。ストアドプロシージャは、いくつかの値を持つテーブルを更新します。これは小規模のテスト手順であるストアドプロシージャです。BLToolkit Oracle SPサポート
DROP PROCEDURE BETA_AUTO_UPDATE;
/
CREATE OR REPLACE PROCEDURE BETA_AUTO_UPDATE
(
AutoId IN NUMBER,
Rule IN NVARCHAR2,
Nam IN NVARCHAR2,
Loc IN NVARCHAR2
)
IS
BEGIN
UPDATE Beta_Auto
SET RuleGuid = Rule,
Name = Nam,
Location = Loc
WHERE Id=AutoId;
EXCEPTION
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR(-20001, 'ERROR OCCURED DURING UPDATE');
END BETA_AUTO_UPDATE;
/
は動作しませんでした次
DbManager.AddDataProvider(new OdpDataProvider());
DbManager OracleDb = new DbManager("BetaOracleDBConn");
Beta_Auto Betar = new Beta_Auto();
Betar.ID = 1;
Betar.Name = "Jim";
Betar.RuleGuid = "jlDKDKDKDKDKDKp";
Betar.Location = "LocDLDLDLDLDtor";
OracleDb.SetSpCommand("Beta_Auto_UPDATE",
OracleDb.CreateParameters(Betar)).ExecuteNonQuery();
をしようとしました。
は動作しませんでした。この
[ActionName("UPDATE")]
public abstract void Update(Beta_Auto Auto);
をしようとしました。
はこれを試し:動作しませんでした
[SprocName("Beta_Auto_Update")]
public abstract void UpdateByParam(
[Direction.InputOutput("ID", "RuleGuid", "Name", "Location")] Beta_Auto Auto);
を。動作しませんでした
[ActionName("Update")]
public abstract void UpdateByParam(int Id, string RuleGuid, string Name, string Location);
:
[SprocName("Beta_Auto_Update")]
public abstract void UpdateByParam(int Id, string RuleGuid, string Name, string Location);
もこれを試してみました。
odp.netのトレース・レベルを7に設定します。呼び出しが行われたが、パラメータが見えなかったことを確認してください。エンタープライズOracleのXEを交換しました(ライセンスの問題として、dbが5GBより大きかったためだと思っていました)。うまくいきませんでした。
新しいユーザー、データファイル、表領域を作成し、すべてのロールとprivを割り当てます(任意のプロシージャの実行を含む)。うまくいきませんでした。
私は標準のado.net(非常に長い巻)を呼び出してOracleCommand
経由でストアドプロシージャを呼び出し、完全に呼び出して更新しました。
私は困惑しています。上記のすべてがSQL Serverで動作します。
ありがとうございました。 scope_creep
実際にSPを呼び出しますか? –
質問を完全に理解していないGetSpParameters - >ストアドプロシージャのパラメータコレクションを取得するためにDBを呼び出すSetSpCommand(...)ExecuteNonQuery() - >パラメータコレクションを設定し、ストアドプロシージャを実行するDBを呼び出す サイト上の - > [リンク](http://www.bltoolkit.net/Doc.SetSpCommand.ashx?HL=setspcommand) 作成しているパレメーターコレクションが正しいかどうかを確認するためにも使用できます –
私はOracleDb.SetSpCommand( "Beta_Auto_UPDATE"、 OracleDb.CreateParameters(Betar))を使用しました。ExecuteNonQuery(); –