2
我在名爲Files的表中有一個名爲FileSize的LONG列。如何查找表中長列的長度
爲了實現這一目標,我做了以下內容:
我寫了這個PL/SQL腳本,找到大小
declare
long_var LONG:=0;
begin
dbms_output.put_line(length(long_var));
execute immediate 'SELECT FILESIZE INTO long_var FROM FILES';
dbms_output.put_line(length(long_var));
end;
但它拋出一個錯誤:
ORA-00905: missing keyword
ORA-06512: at line 5
我正如我看到下面給出的鏈接下面做以下: http://www.techonthenet.com/oracle/questions/long_length.php
可以有人建議我做錯了,因爲我無法確定我缺少的關鍵詞
謝謝。
現在,我得到這個錯誤: ORA-01422:精確抓取返回超過請求的行數 ORA-06512:在第5行 – Egalitarian 2011-03-25 10:54:34
您的SELECT只需要一行,但您有很多,因此您需要使用WHERE子句對其進行過濾以獲得唯一一行。如果你想獲得很多行的長度,你需要使用光標。或者,你可以把它變成一個函數,然後在普通的select語句中使用它。 – Lunc 2011-03-25 12:27:33
自從我使用DBMS_OUTPUT包以來已經有一段時間了。記得做「set serveroutput on」 - 另外:不幸的是,當LONG列數據超過32k(至少對於我的32位SQL * Plus客戶端)時,此方法失敗。要檢測長度較大的LONG值,我必須使用此解決方案:http://stackoverflow.com/questions/5497238/get-the-length-of-a-long-raw – nothingisnecessary 2013-07-30 21:57:57