标签: dbms-output

DBMS_OUTPUT.PUT_LINE无法打印

执行以下代码时,它只是说过程已完成,并且不打印我想要的信息(firstName,lastName),然后是下表中select查询的其他值.

 CREATE OR REPLACE PROCEDURE PRINT_ACTOR_QUOTES (id_actor char)
AS
CURSOR quote_recs IS
SELECT a.firstName,a.lastName, m.title, m.year, r.roleName ,q.quotechar from quote q, role r,   
rolequote rq, actor a, movie m
where
rq.quoteID = q.quoteID
AND
rq.roleID = r.roleID
 AND
r.actorID = a.actorID
AND
r.movieID = m.movieID
AND
 a.actorID = id_actor;
BEGIN
FOR row IN quote_recs LOOP
DBMS_OUTPUT.PUT_LINE('a.firstName' || 'a.lastName');

end loop;
END PRINT_ACTOR_QUOTES;
/ 
Run Code Online (Sandbox Code Playgroud)

当设置服务器输出时,我得到

a.firstNamea.lastName
a.firstNamea.lastName
a.firstNamea.lastName
a.firstNamea.lastName
Run Code Online (Sandbox Code Playgroud)

多次!

plsql sqlplus oracle10g dbms-output

81
推荐指数
6
解决办法
36万
查看次数

如何将DBMS_OUTPUT.PUT_LINE的输出重定向到文件?

我需要在pl/sql中调试以计算程序的次数,我想使用:

SELECT systimestamp FROM dual INTO time_db;
DBMS_OUTPUT.PUT_LINE('time before procedure ' || time_db);
Run Code Online (Sandbox Code Playgroud)

但我不明白输出的位置,如何将其重定向到包含我想要收集的所有数据的日志文件?

oracle plsql oracle-sqldeveloper dbms-output

45
推荐指数
6
解决办法
27万
查看次数

有没有办法从Oracle中的PL/SQL刷新输出?

我有一个从shell脚本中调用的SQL脚本,需要很长时间才能运行.它目前包含dbms_output.put_line各个方面的陈述.这些打印语句的输出显示在日志文件中,但仅在脚本完成后才显示.

有没有办法确保在脚本运行时输出显示在日志文件中?

sql oracle plsql dbms-output

43
推荐指数
3
解决办法
7万
查看次数

基本问题:基本的PL/SQL控制台输出?

我正在使用SQL Developer,并希望使用DBMS_OUTPUT.PUT_LINE()将变量的内容输出到控制台.我正在运行以下代码,添加数字1到5,但我没有看到任何输出.

SET SERVEROUTPUT ON;
DECLARE 
n_counter NUMBER := 5; -- Substitute this variable
n_sum     NUMBER := 0;
BEGIN
  WHILE n_counter != 0
  LOOP
    n_sum := n_sum + n_counter;
    n_counter := n_counter -1;
  END LOOP;
  DBMS_OUTPUT.PUT_LINE(n_sum);
END;
Run Code Online (Sandbox Code Playgroud)

此外,您是否知道比非常密集的Oracle PL/SQL文档更好的解决问题资源?[类似于Java SE7 API?]

sql oracle plsql oracle-sqldeveloper dbms-output

25
推荐指数
1
解决办法
6万
查看次数

如何增加dbms_output缓冲区?

我试图调试我的动态查询,dbms_output但似乎查询字符串对于dbms_output缓冲区来说太长了.

我有 :

ORA-06502: PL/SQL: numeric or value error: character string buffer too small
ORA-06512: at "SYS.DBMS_OUTPUT", line 148
ORA-06512: at line 1 
Run Code Online (Sandbox Code Playgroud)

知道如何增加缓冲区大小吗?

sql oracle plsql oracle10g dbms-output

17
推荐指数
1
解决办法
11万
查看次数

将 dbms_output.put_line 在 Datagrip 中用于 .sql 文件

我开始将Datagrip用于需要使用DBMS_OUTPUT.PUT_LINE. 在此之前,我使用的是 Oracle SQL 开发人员,并且能够通过添加以下内容来使用 DBMS_OUTPUT:

SET serveroutput ON;
Run Code Online (Sandbox Code Playgroud)

有一个相关问题显示了如何启用或禁用显示 DBMS_OUTPUT 缓冲区的内容,但这仅适用于数据库控制台工具窗口。如何将其应用于任何 .sql 文件?目前,我正在复制 .sql 文件的内容并在控制台工具窗口中运行它,但必须有更好的方法。

oracle plsql dbms-output datagrip

15
推荐指数
4
解决办法
7825
查看次数

DBMS_OUTPUT.PUT_LINE

是否会dbms_output.put_line降低plsql代码的性能?

oracle performance plsql dbms-output

7
推荐指数
2
解决办法
5916
查看次数

监视长时间运行的PL/SQL块

我有一个相当耗时的PL/SQL块,可以从分子结构中构建指纹.我想将输出打印到SQL*Plus控制台,以提供有关已处理的结构数量的反馈.我可以这样做dbms_output.put_line

但是,每次调用新行时都会写入.我想覆盖这条线.

例如,目前我有以下内容.

Structure x of y processed
Structure x of y processed
Structure x of y processed
Structure x of y processed
Run Code Online (Sandbox Code Playgroud)

最后,当我处理成千上万的结构记录时,我填满了缓冲区.

有没有一种方法可以用来覆盖最后一条输出线?

sql oracle plsql sqlplus dbms-output

6
推荐指数
1
解决办法
3735
查看次数

返回表的id,其中使用all()或exists()以此id存在其他表的所有值

我有三个包含以下数据的表格

表3 :

Table1_id        Table2_id
1                1
1                2
1                3
2                1
2                3
3                2
Run Code Online (Sandbox Code Playgroud)

表2:

Table2_id        Name
1                A
2                B
3                C
Run Code Online (Sandbox Code Playgroud)

表格1 :

Table1_id        Name
1                P
2                Q
3                R
Run Code Online (Sandbox Code Playgroud)

我有一个问题,我需要返回所有table1_id,其中有表3中所有Table2_ids的条目.
即.我想要我的输出

Table1_id
1
Run Code Online (Sandbox Code Playgroud)

我找到了一个使用count()的解决方案.但有没有办法使用all()或exists()来解决查询?

mysql sql database dbms-output

6
推荐指数
1
解决办法
75
查看次数

dbms_output无法打印布尔值?

我正在学习游标,我无法打印中的布尔值

dbms_output.put_line();
Run Code Online (Sandbox Code Playgroud)

代码是

DECLARE
CURSOR c_employees_3i is
SELECT * FROM employees_3i;
row_count BOOLEAN;
BEGIN
OPEN c_employees_3i;
row_count := c_employees_3i%isopen; 
Dbms_Output.put_line(bool_to_text(row_count));
CLOSE c_employees_3i;
END;
Run Code Online (Sandbox Code Playgroud)

我收到这个错误

ORA-06550: line 8, column 22:
PLS-00201: identifier 'BOOL_TO_TEXT' must be declared
ORA-06550: line 8, column 1:
PL/SQL: Statement ignored
Run Code Online (Sandbox Code Playgroud)

请帮我纠正错误.谢谢

sql oracle boolean cursor dbms-output

6
推荐指数
1
解决办法
2万
查看次数