相关疑难解决方法(0)

使用Dapper.NET从存储过程调用中获取Oracle OUT参数的值

编辑:使用Execute方法而不是Query/ QueryMultiple方法,我的OUT_SUCCESS参数现在有一个AttachedParam带有OracleParameter返回值的with .因此,如果我需要检索非游标参数,那么这将起作用.然后我可以使用Execute所有非游标输出参数的程序和Query/ QueryMultiple用于光标输出参数的程序.但是,如果我需要调用已存储的过程光标和非游标输出参数,这是常有的情况?

使用Dapper.NETOracleDynamicParameters我已经成功返回并映射了多个IN OUT REF CURSORs,但是我无法获得单个OUT参数的值.

例如,我试图使用以下规范调用存储过程:

PROCEDURE DO_SOMETHING (
    OUT_SUCCESS    OUT VARCHAR2
)
Run Code Online (Sandbox Code Playgroud)

为此我创建了一个相应的C#类来对其进行建模,其中包含获取OracleDynamicParameters,CommandText等等的方法,还包括每个参数的自动实现属性

public class DO_SOMETHING {
    ... //code to return parameters, etc
    public string OUT_SUCCESS { get; set; }
    ...
}
Run Code Online (Sandbox Code Playgroud)

我尝试了以下所有语法:

using (var gridReader = Connection.QueryMultiple(nModel.CommandText(), param: nModel.DynamicParameters(), …
Run Code Online (Sandbox Code Playgroud)

c# oracle ado.net odac dapper

9
推荐指数
1
解决办法
4658
查看次数

Oracle始终获取具有标识的插入行的ID

目前我有一个具有这种结构的表:

CREATE TABLE "DUMMY_SCHEMA"."NAMES"
(
  "ID" NUMBER(10,0) GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1 CACHE 20) NOT NULL 
, "NAME" NVARCHAR2(1024) NOT NULL 
, CONSTRAINT "NAMES_PK" PRIMARY KEY ("ID")
);
Run Code Online (Sandbox Code Playgroud)

在 SQL Server 中,我只需要执行以下操作即可获取插入行的 ID。

INSERT INTO [NAMES]([NAME])VALUES('Random'); SELECT SCOPE_IDENTITY() Id
Run Code Online (Sandbox Code Playgroud)

Oracle 12c 的等效项是什么?

sql oracle plsql dml oracle12c

4
推荐指数
1
解决办法
5866
查看次数

标签 统计

oracle ×2

ado.net ×1

c# ×1

dapper ×1

dml ×1

odac ×1

oracle12c ×1

plsql ×1

sql ×1