0

私は 1 日以上 Oracle データベースへの呼び出しに苦労しています。プログラム以外でデータベースにアクセスすることはできませんが、DBA は次のことを教えてくれました。

desc appowner.member_data_package

PROCEDURE UPDATE_NOTES_V001
Argument Name                  Type                    In/Out Default?
------------------------------ ----------------------- ------ --------
TAU_UID_IN                     VARCHAR2                IN
INCOMING_FUNC_IN               VARCHAR2                IN
INCOMING_TEXT_IN               VARCHAR2                IN
SYS_SOURCE_IN                  VARCHAR2                IN
USER_ID_IN                     VARCHAR2                IN
O_STATUS                       VARCHAR2                OUT

私のコードは次のようになります。

using (var connection = new OracleConnection(connectionString))
{
    connection.Open();

    OracleCommand command = new OracleCommand
    {
        Connection = connection,
        CommandType = CommandType.StoredProcedure,
        CommandText = "appowner.MEMBER_DATA_PACKAGE.UPDATE_NOTES_V001",
        BindByName = true
    };

    command.Parameters.Add(new OracleParameter("O_STATUS", OracleDbType.Varchar2, ParameterDirection.ReturnValue));
    command.Parameters.Add(new OracleParameter("TAU_UID_IN", OracleDbType.Varchar2, ParameterDirection.Input)).Value = "7400";
    command.Parameters.Add(new OracleParameter("INCOMING_FUNC_IN", OracleDbType.Varchar2, ParameterDirection.Input)).Value = "PROVCOUNT";
    command.Parameters.Add(new OracleParameter("INCOMING_TEXT_IN", OracleDbType.Varchar2, ParameterDirection.Input)).Value = "Pypestream testing.";
    command.Parameters.Add(new OracleParameter("SYS_SOURCE_IN", OracleDbType.Varchar2, ParameterDirection.Input)).Value = "CRM";
    command.Parameters.Add(new OracleParameter("USER_ID_IN", OracleDbType.Varchar2, ParameterDirection.Input)).Value = "jac";

    command.ExecuteNonQuery();
    Console.WriteLine($"Insert output value is '{command.Parameters["O_STATUS"].Value.ToString()}'");

}

これを実行すると発生するエラーは次のとおりです。

ORA-06550: line 1, column 15:
PLS-00306: wrong number or types of arguments in call to 'UPDATE_NOTES_V001'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored

私が知る限り、私適切な数と種類の引数を持っていますが、オラクルの方法で私よりも賢い人 (基本的には誰でも) が私がどこを台無しにしたかを指摘できれば、それは素晴らしいことです.

その部分が正しく見え、エラーがある種の赤いニシンである場合、他に何を確認できますか? このプロシージャを呼び出す他の方法はありますか? 私は Visual Studio 2017 以外のツールを持っていないことに注意してください。役立つ拡張機能をダウンロードできません。DBA への電子メール以外に、データベースに直接アクセスすることはできません。

また、ここで完全に間違った方向に進んでいる可能性があることも認めます。ここやネットで見たいくつかの例に基づいて、Oracleデータベースに値を挿入するコードは次のようになると完全に推測しています。これに取り組むためのアドバイスは役に立ちます。

4

1 に答える 1