在 winform 应用程序中使用 PLSQL dbms_output.put_line 输出
Posted
技术标签:
【中文标题】在 winform 应用程序中使用 PLSQL dbms_output.put_line 输出【英文标题】:using PLSQL dbms_output.put_line output in a winform app 【发布时间】:2014-06-08 12:03:51 【问题描述】:我在 PLSQL 中有一个过程:
CREATE OR REPLACE PROCEDURE printAllPeople (payment INTEGER)
IS
sum_ number(6) := payment;
name_ varchar(10);
CURSOR listOfPeople IS
select lastname
from driver join
(select driver.id as tempdid, sum(payment) as isum
from report join driver
on report.driverid = driver.id
group by driver.id
having sum(payment) > sum_)
on driver.id = tempdid;
BEGIN
IF NOT listOfPeople%ISOPEN THEN
OPEN listOfPeople;
END IF;
LOOP
FETCH listOfPeople INTO name_;
EXIT WHEN listOfPeople%NOTFOUND;
dbms_output.put_line(name_);
END LOOP;
END;
我有一个从 Oracle DB 检索数据的 winform 应用程序。 是否有任何选项可以以某种方式使用“dbms_output.put_line”在我的 winform 应用程序上显示输出?
【问题讨论】:
简短的回答是否定的。取而代之的是,您可以向您的过程添加参数。 我还没有尝试过,但看起来您应该能够从您的应用程序中调用 DBMS_OUTPUT.GET_LINE 来检索您的 PL/SQL 代码写入 DBMS_OUTPUT 的文本。 Docs here。分享和享受。 【参考方案1】:想象一下像这样简单地调用一个函数:
CREATE OR REPLACE
FUNCTION get_dbms_output(maxbytes IN NUMBER, buffer OUT VARCHAR2) RETURN NUMBER
IS
l_line VARCHAR2(255);
l_done NUMBER := 0;
BEGIN
LOOP
EXIT WHEN LENGTH(buffer) + 255 > maxbytes OR l_done = 1;
dbms_output.get_line(l_line, l_done);
buffer := buffer || l_line || CHR(10);
END LOOP;
RETURN l_done;
END get_dbms_output;
/
【讨论】:
以上是关于在 winform 应用程序中使用 PLSQL dbms_output.put_line 输出的主要内容,如果未能解决你的问题,请参考以下文章
使用PLSQL Developer 连接远程oracle实例
使用PLSQL Developer 连接远程oracle实例