首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >plsql在datagrip中的使用

plsql在datagrip中的使用
EN

Stack Overflow用户
提问于 2021-06-20 08:32:32
回答 2查看 510关注 0票数 0

当我在datagrip中运行PL/SQL脚本时,我得到了任务编译,但是我看不到输出如何在datagrip中获得输出,而且当我运行动态块时,它没有在Datagrip中获取输入值。

代码语言:javascript
复制
declare
    v1 emp.empno%type := '&empno';
    v2 emp.ename%type;
begin
    select empno,ename into v1,v2 from emp where empno = v1;
    DBMS_OUTPUT.PUT_LINE(v1 || ' ' || v2);
end;

它显示了这个错误。

ORA-06502: PL/SQL:数值或值错误:字符转换错误

有人有什么解决办法吗?

EN

回答 2

Stack Overflow用户

发布于 2021-06-22 12:00:27

启用DBMS_OUTPUT按钮放置在“服务”窗口的右侧工具栏上

票数 4
EN

Stack Overflow用户

发布于 2021-06-20 09:42:40

我不使用DataGrip。

看来您应该启用 dbms_output。多么?尝试使用Ctrl + F8,或者按适当的按钮(工具提示写着“启用SYS.DBMS_OUTPUT")。

在你问题的第二部分,文档

一般来说,只有问号?在SQL语句中被视为参数,这意味着您可能需要这样做:

代码语言:javascript
复制
v1 emp.empno%type := ?;

因为,您发布的代码在例如或SQL *Plus中工作正常:

启用DBMS_OUTPUT:

代码语言:javascript
复制
SQL> set serveroutput on

代码执行:

代码语言:javascript
复制
SQL> declare
  2      v1 emp.empno%type := '&empno';
  3      v2 emp.ename%type;
  4  begin
  5      select empno,ename into v1,v2 from emp where empno = v1;
  6      DBMS_OUTPUT.PUT_LINE(v1 || ' ' || v2);
  7  end;
  8  /
Enter value for empno: 7369
7369 SMITH                                 --> this is the result

PL/SQL procedure successfully completed.

SQL>

最后,ORA-06502:当您传递一些不是数字的东西(而数字是预期的)时会发生这种情况;例如,我将传递ABC

代码语言:javascript
复制
SQL> /
Enter value for empno: ABC
declare
*
ERROR at line 1:
ORA-06502: PL/SQL: numeric or value error: character to number conversion error
ORA-06512: at line 2


SQL>

看见?你犯的同样的错误。--也许--这一切都必须用替换变量的不当用法来做一些事情,例如'&empno'?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68054057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档