如何將Oracle9i的Long欄位值取出? |
尚未結案
|
NO.5
初階會員 ![]() ![]() 發表:18 回覆:35 積分:25 註冊:2005-02-23 發送簡訊給我 |
請問各位先進:
用BDE元件取出Oracle9i的Long欄位內的文字內容,如何設定?
以下是使用Oracle的SQL PLUS所產生的文字內容:
SQL> SELECT HELP_TEXT FROM FORMHELP; //"HELP_TEXT"的欄位屬性是LONG,預計將使用說明放入 HELP_TEXT -------------------------------------------------------------------------------- SDFHSJHSJHDKJSKJDFSDF (1){2}[3]!@#$%^&*SDFSDFS SWESDFSD 隨便打 OHAHAHA SQL> CREATE TABLE YUH(HELP LONG); 表格已被建立 SQL> INSERT INTO YUH SELECT HELP_TEXT FROM FORMHELP; INSERT INTO YUH SELECT HELP_TEXT FROM FORMHELP * 第 1 行發生錯誤: ORA-00997: 不可使用 LONG 資料類型 SQL> INSERT INTO YUH SELECT TO_CHAR(HELP_TEXT) FROM FORMHELP; INSERT INTO YUH SELECT TO_CHAR(HELP_TEXT) FROM FORMHELP * 第 1 行發生錯誤: ORA-00932: 資料類型不一致: 預期為 CHAR, 但為 LONG在Delphi中用BDE元件擷取Oracle的"LONG"欄位,再用ADO元件塞給ACCESS2000的"備忘"欄位,應該如何處理? |
Mickey
版主 ![]() ![]() ![]() ![]() ![]() 發表:77 回覆:1882 積分:1390 註冊:2002-12-11 發送簡訊給我 |
你好: 據個人的經驗, Oracle 從 8i 以後, "強烈建議"不要用 LONG 與 LONG RAW, 而改用 CLOB 與 BLOB... 言歸正傳, 據我所知, 不改 DataType 的前提下, 您的意圖大概很難單純用 PL/SQL 在資料庫端完成, 大概必須土法煉鋼, 借助前端, 先取出來, 再塞到另一個 Table.
|
NO.5
初階會員 ![]() ![]() 發表:18 回覆:35 積分:25 註冊:2005-02-23 發送簡訊給我 |
Mickey你好:
事實上,因為以前的HELP是開放給"高級user"編輯,存在long的欄位裡,現在需要將內容原封不動的搬到ACCESS裡面,弟使用BDE元件的Query想要將內容取出,像是:
SQL.Add('SELECT HELP_TEXT FROM FORMHELP');,
但是卻傳回recordcount = -1的結果,參考某篇"擷取MEMO中第一行的字串內容"的做法,改為如下:
SQL.Add('SELECT TO_CHAR(HELP_TEXT) FROM FORMHELP');,
就如同在SQL PLUS中執行一樣,出現"資料類型不一致: 預期為 CHAR, 但為 LONG"的例外,請問應該如何改寫才能把它取出呢?
|
Mickey
版主 ![]() ![]() ![]() ![]() ![]() 發表:77 回覆:1882 積分:1390 註冊:2002-12-11 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |