MS OfficeのスマートクォートをASCIIのいとこに置き換えるSQLコマンドを知っている人はいますか?Oracleデータベースを使用しており、フィールドのタイプはvarchar2です。
5 に答える
update table set column = replace(replace(column, chr(147),'"'), chr(148), '"')
REPLACE(REPLACE(str, '`', ''''), '´', '''')
または、私はあなたの質問を見逃していますか?
同様の問題がありました。引用符がデータベースに保存された後、私にとっては「Â'」のように見えました。
SELECT abstract FROM foo WHERE version = '1.0' and newscode = 'au20309';
MaeÂ'r ffordd gynaliadwy y mae bwyd yn cael ei dyfu, ei brynu aÂ'i baratoi ...
これが私がそれらを交換した方法です。最初に、通常とは異なる「Â」文字の ASCII 値を見つけます。
SELECT ascii('Â') FROM DUAL; -- returns 50050
次に、chr 関数を使用して "Â" をレンダリングします。|| 関数は 2 つの文字を連結します。q 関数は、スマート クォート文字列を「引用」するのに便利です。
SELECT REPLACE(abstract,chr(50050) || q'#’#' , q'#'#')
FROM foo
WHERE version = '1.0' and newscode = 'au20309';
Mae'r ffordd gynaliadwy y mae bwyd yn cael ei dyfu, ei brynu a'i baratoi ...
これは、Oracle 10 システムでうまく機能しました。
TRANSLATE は REPLACE より適切です。
TRANSLATE(str, '`´', '''''')
http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/functions204.htm#sthref2477
update table set column = replace( column, string_to_replace, [ replacement_string ] )