如何获得价值 dbms.output, 返回块 PL-SQL 在 C#

我正在尝试执行块 PL-SQL 在 c#, 使用
System.Data.OrcaleClient

.
堵塞 PL-SQL 执行B. oracle 显示结果
dbms.ouput

.

我想得到这个结果 "
dbms.ouput

" 在我的代码中 C#.

请帮忙。
已邀请:

知食

赞同来自:

尝试使用该函数
get_line

包裹
dbms_output

. 您可以创建一个返回输出的过程。 那样的东西 /只是一个例子/:


procedure call_with_output/p_output out varchar2/ is
vret integer := 0;
vtxt varchar2/4000/;
begin
dbms_output.enable;
-- here call code that generate lines
-- use the loop to retrieve info
while vret = 0 loop
dbms_output.get_line/vtxt, vret/;
if vret = 0 then
if p_output is null then
p_output := vtxt;
else
p_output := p_output || chr/10/ || vtxt;
end if;
end if;
end loop;
dbms_output.disable;
end;

詹大官人

赞同来自:

我使用以下方法:


private string GetDbmsOutputLine//
{
OracleCommand command = new OracleCommand
{
Connection = <connection>,
CommandText = "begin dbms_output.get_line/:line, :status/; end;",
CommandType = CommandType.Text
};

OracleParameter lineParameter = new OracleParameter/"line",
OracleType.VarChar/;
lineParameter.Size = 32000;
lineParameter.Direction = ParameterDirection.Output;
command.Parameters.Add/lineParameter/;

OracleParameter statusParameter = new OracleParameter/"status",
OracleType.Int32/;
statusParameter.Direction = ParameterDirection.Output;
command.Parameters.Add/statusParameter/;

command.ExecuteNonQuery//;

if /command.Parameters["line"].Value is DBNull/
return null;

string line = command.Parameters["line"].Value as string;

return line;
}


称之为多次以获得多线值,因为存在挑战 dbms_output.get_lines 从 System.Data.OracleClient.
</connection>

要回复问题请先登录注册