iT邦幫忙

1

win10環境Oracle 11g 下SQL指令報錯@@ 請指教

  • 分享至 

  • xImage

在練習書的指令
(環境是win10 裝win版的oracle 11G~ 用sql Developer連DB下指令
這個HR範例 試了好幾次都會報錯

SELECT employee_id ,last_name,first_name,job_id,hire_date,salary
FROM employees
ORDER BY salary DESC
FETCH FIRST 3 ROWS ONLY;

會報錯
ORA-00933: SQL 命令的結束有問題
00933. 00000 - "SQL command not properly ended"
*Cause:
*Action:
第 4 行, 資料欄: 1 發生錯誤

這個也是~~
SELECT employee_id ,last_name,first_name,job_id,hire_date,salary
FROM employees
ORDER BY salary DESC
FETCH NEXT 1 PERCENT ROWS ONLY;


連OE的資料庫 下這個指令 也是報錯@@
SELECT product_name,quantity_on_hand
FROM inventories
INNER JOIN product_information USING(product_id)
ORDER BY quantity_on_hand DESC
FETCH NEXT 10 ROWS ONLY;

ORA-00933: SQL 命令的結束有問題
00933. 00000 - "SQL command not properly ended"
*Cause:
*Action:
第 5 行, 資料欄: 1 發生錯誤

-----------------!
我發現只要跟FETCH FIRST 或FETCH NEXT有關的都會跳錯誤@@
請問看起來是哪邊有問題呢?
一開始以為是;問題,可是貼到筆記本重打也沒用@@

https://ithelp.ithome.com.tw/upload/images/20220221/20146765GuurE5eb68.jpg

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
4
海綿寶寶
iT邦大神 1 級 ‧ 2022-02-21 10:56:11
最佳解答

根據這篇的說法
要 Oracle 12c 以後才有這語法
而你是 11g

UncleBen iT邦新手 5 級 ‧ 2022-02-21 11:34:35 檢舉

感謝你! 的確是這樣
書再往前翻幾頁原來也有提到XD 問了個烏龍問題

2
科科
iT邦好手 8 級 ‧ 2022-02-21 10:45:20

應該是版本問題,不同版本的語法不一定都有支援。

書中使用的版本跟你安裝的版本一樣嗎?

參考1

參考2

1
一級屠豬士
iT邦大師 1 級 ‧ 2022-02-21 10:52:00

12c 的語法, 科科大大給的連結有相關討論.
底下也有可以參考
https://oracle-base.com/articles/12c/row-limiting-clause-for-top-n-queries-12cr1

2
尼克
iT邦大師 1 級 ‧ 2022-02-21 11:16:36

不用安裝可以線上執行測試。
Oracle Live SQL
按「Start Coding Now」 。
可以申請一個 Oracle 帳號。

UncleBen iT邦新手 5 級 ‧ 2022-02-21 11:34:51 檢舉

原來有這麼好的東西! 來試試看~~謝謝

尼克 iT邦大師 1 級 ‧ 2022-02-21 11:53:03 檢舉

我是都用Toad工具連到公司Oracle DB。

我要發表回答

立即登入回答