❶ 如何解決PL/sql導出Oracle的數據為亂碼的問題
先問一下:你屏幕上出現的結果顯示的是亂碼嗎?
一般來說,你這情況是因為資料庫伺服器和客戶端字元集不匹配,執行sqlplus的機器就是客戶端,伺服器和客戶端也可能是一台機器,執行sqlplus之前要先設置客戶端的字元集,在linux上:export NLS_LANG=.......
在windows上set NLS_LANG
查詢資料庫字元集:select property_value from database_properties where property_name like 'NLS_CHAR%';
比如查詢結果是:ZHS16GBK
那你在sqlplus之前要設置:export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
然後再登錄sqlplus用spool生成數據
❷ plsql提示和Oracle字元集不一致,注冊表修改後,進入cmd下資料庫漢字會亂碼。 求大神幫助 困擾好幾天了
是不是client有問題?,重新安裝,選擇最大的那個類型。
oracle11g中應該是700多M那個
❸ 視圖遷移到oracle之後,出現字元集不匹配問題!
那就把視圖重新編譯下唄,看看出什麼錯啊!
sqlserver遷移到ORACLE最好用oracle官方的工具sqldeveloper,不過就算是sqldeveloper也不可能百分百的轉換OK,好多東西還是要手動去修正下!
❹ oracle資料庫(PLSQL)導入.sql文件出錯:無效的字元集
file--new--command
window,打開後執行:@目錄:\wj.sql;
然後回車。例如文件在e盤,就是
@e:\wj.sql;
❺ 在ORACLE查詢出來的結果凡是中文的都是亂碼 ,用pl/sql亦如此,該如何解決呢
數據是怎麼來的是導入還是客戶端錄入的
如果是導入的那就是你導入數據的字元集和導入的oracle的字元集不一致,那就修改資料庫的字元集重新導入數據
如果是客戶端錄入的那就是客戶端的字元集和oracle的不一致 有兩個辦法一是修改客戶端的代碼使客戶端的字元集和oracle一致,二是修改資料庫的字元集重新錄入數據
❻ ORACLE sql 語句插入時間 總是提示 文字與格式字元串不匹配
第一個日期,怎麼能用to_char呢?
INSERT INTO zo_proct VALUES(SEQ_ZO_PRODUCT.NEXTVAL,'圖書','民國藏書',999,998, trunc(sysdate), to_date( '2013-1-1 00:00:00 ', 'YYYY-MM-DD HH24:MI:SS '),1);
❼ 失敗原因:執行SQL失敗,失敗原因:批處理中出現錯誤: ORA-00911: invalid character
應該是錯誤輸入了全形字元,輸入半形字元就行了。
錯誤信息ORA-00911: invalid character說明了在執行的SQL語句中出現了無效字元,所在SQL語句無法通過語法分析過程導致了錯誤結果。
可能出現的原因有:錯誤地輸入了全形字元,比如輸入了全形逗號。
如果使用C++、Java、C#等編程時,總會習慣在語句最後加分號,而這個符號在SQL中是無效字元。
實際語句和列類型不匹配,比如將數值列賦值為字元串。
與display函數不同,display_cursor顯示的為真實的執行計劃。
對於format參數,使用與display函數的各個值,同樣適用於display_cursor函數。
當statistics_level為all或使用gather_plan_statistics提示可以獲得執行時的統計信息。
根據真實與預估的統計信息可以初步判斷SQL效率低下的原因,如統計信息的准確性、主要的開銷位於那些步驟等。
看你的sql語句最後是否有分號,有的話去掉就行 看你Oracle伺服器端字元集是否和Oracle客戶端字元集匹配。
查詢oracle server端的字元集:SQL>select userenv(『language』) from al。
查詢oracle client端的字元集。在windows平台下,就是注冊表裡面相應OracleHome的NLS_LANG。
還可以在dos窗口裡面自己設置,比如: set nls_lang=AMERICAN_AMERICA.ZHS16GBK。
❽ oracle這個sql怎麼不對,報「文字格式與字元串不匹配」
一般出現此類問題是將日期型的欄位中插入了字元型的數據,導致資料庫不可識別而報錯。
如:有如下test表
123createtabletest(idint,begin_datedate);現在執行插入語句:
1insertintotestvalues(1,'2015-01-01');則會報錯:
如果正確插入,則要將字元型數據轉成日期型數據:
1insertintotestvalues(1,to_date('2015-01-01','yyyy-mm-dd'));❾ 查詢 SQL語句的時候 出現oracle ora 01861 文字與字元串格式不匹配 百思不得其解!
你自己寫錯了,
TO_CHAR(IM.INFO_MAGA_CREATE_TIME, 'YYYY-MM-DD') AS T_INFO_MAGA_CREATE_TIME,
TO_DATE('2013-02-01', 'YYYY-MM-DD')
他們怎麼恩那個對比呢?一個CHAR.一個DATE
要不你轉換上面的TO_CHAR為TO_DATE
要不你轉換下面的TO_DATE為 TO_CHAR
你的SQL 真。。。。亂