【问题标题】:Testing SQL Query on ORACLE SQL Developer - beginner在 ORACLE SQL Developer 上测试 SQL 查询 - 初学者
【发布时间】:2018-11-20 02:54:12
【问题描述】:

我是 Oracle SQL Developer 和一般 SQL 的新手。我有以下问题:

1) 我已连接到我公司的数据库。我可以访问视图。当我试图确保时,如何在 Oracle SQL Developer 上测试 SQL 查询 结果符合我的预期,或者它甚至可以工作。例如,当我在 Excel 中编写 VBA 代码时,我 a) 调试,b) debug.print 变量到即时窗口以引导它们。 我想了解如何在 Oracle SQL Developer 中做到这一点。

2) 如何在 Oracle SQL Developer 中调出结果窗口?

3) 我尝试运行以下 SQL 查询,但收到以下错误消息。

spool "C:\myfolder\TEST_sql.csv";
SELECT /*csv*/ CLIENT_NAME, ORDER_ID, PRODUCT, 
QUANTITY, to_char(CREATION_DATE,'mm/dd/yyyy 
hh24:mi:ss') as CREATION_DT
FROM reports.REPORT_ORDER
ORDER BY ORDER_ID
FETCH FIRST 5 ROWS;
spool off;

错误信息:

Error starting at line : 2 in command -
SELECT /*csv*/ CLIENT_NAME, ORDER_ID, PRODUCT, 
QUANTITY, to_char(CREATION_DATE,'mm/dd/yyyy 
hh24:mi:ss') as CREATION_DT
FROM reports.REPORT_ORDER
ORDER BY ORDER_ID
FETCH FIRST 5 ROWS;
Error at Command Line : 4 Column : 10
Error report -
SQL Error: ORA-00933: SQL command not properly ended
00933. 00000 -  "SQL command not properly ended"
*Cause:    
*Action:

【问题讨论】:

  • 您使用的是 12c 数据库吗? fetch first 语法不适用于 7、8、9、10 或 11 个数据库
  • 你最后一行也错了,看我下面的回答

标签: sql debugging oracle-sqldeveloper


【解决方案1】:

您有两种在 SQL Developer 中执行查询的方法。

作为脚本:

spool c:\users\jdsmith\so.csv
select /*csv*/ first_name,
       last_name,
       to_char(hire_date,'mm/dd/yyyy hh24:mi:ss')  hire_date
  from employees
  order by employee_id
  fetch first 5 rows only;
spool off

使用 F5 执行(或使用工作表工具栏上的第二个按钮)

这将遍历您的 SQL 工作表的内容(除非您已突出显示文本,然后仅突出显示该文本),并将其放入我们的脚本 (SQL*Plus) 引擎。这就是 SPOOL 命令的执行方式——这些命令发生在客户端,而不是数据库。

您的另一个选择是只执行查询。

将执行您的 SINGLE 查询,并将结果的第一页返回到数据网格。当您滚动浏览结果时,将获取更多行,直到它们全部返回。

您的代码出现错误,因为:

  1. 您至少不在 Oracle Database 12c 上,其中添加了 FETCH FIRST 语法
  2. 并且您忘记了 FETCH 中的“ONLY”关键字

【讨论】:

    猜你喜欢
    • 2013-06-20
    • 1970-01-01
    • 2014-07-09
    • 1970-01-01
    • 2012-06-14
    • 2021-04-12
    • 2021-03-31
    • 2012-12-30
    • 1970-01-01
    相关资源
    最近更新 更多