2016-10-14 13 views
1

こんにちはguyz私はOracle 10gのNvarchar2列に問題があります。基本的には、実行時にDBテーブルにUnicode文字を挿入したいのですが、これをGoogleで検索して、N接頭辞を使用してNvarchar2列のUnicode文字を挿入または更新します以下の下:ユニコード文字のパラメータ付きSQLクエリでNvarchar2列を使用する方法

Insert into nvarchar_test (c_nvarchar) VALUES (N'اب ج قر');

私は上記挿入するために使用される文字は、ウルドゥー語言語の文字である、声明の上に完璧に働いたが、私の要件は、私が変数として実行時にURDU Unicode文字を渡したいということですそれらのハードコードの代わりに、私はこれのPL-SQLコードの下で試しました:

Declare  
    urdu_characters Nvarchar2 (500);  
Begin  
    urdu_characters := 'اب ج';  
    Insert into nvarchar_test (c_nvarchar) VALUES (N urdu_characters);  
End; 

私が変数にN接頭辞を使用することができず、この問題を整理するのに親切に手伝ってくれるとは思わないので、上記のコードは正しくありません。

ありがとうございました!

答えて

2

最初の質問から:Nは、文字列定数を変更するので、宣言時に使用してください。ここではあなたが行かなければならない方法です。

Declare  
    urdu_characters Nvarchar2 (500);  
Begin  
    urdu_characters := N'اب ج';  
    Insert into nvarchar_test (c_nvarchar) VALUES (urdu_characters);  
End; 

しかしN'اب ج'CAST('اب ج' AS NVARCHAR2(..))に(多かれ少なかれ)と同等です。 PLでウルドゥー語の文字が含まれる可能性ASCIISTR(..)機能を使用することです:私は「ابج」から変数urdu_charactersの値を変更したい場合は

Declare  
    urdu_characters Nvarchar2 (500);  
Begin  
    urdu_characters := 'اب ج';  
    Insert into nvarchar_test (c_nvarchar) VALUES (ASCIISTR(urdu_characters));  
End; 
+0

問題はまだ同じである「قتد」どのように私はこのN接頭辞の仕事を一重引用符で処理します。例えば** N '' **私の質問はurdu_characters変数に新しい値を渡す方法です。実行時にこのUnicode文字を取得し、それらを使用するパラメータ化されたプロシージャを書きましたこの手順にあるクエリでは? – ahad

関連する問題