0

困っているのでアドバイスお願いします。次のようなステートメントで、1つのOracleサーバーからSQLサーバーにデータベースを挿入したい:

SELECT * INTO ABC_temp SELECT * FROM DIM_PROVINCE

DIM_PROVINCE と ABC_temp には 3 つの列があります: 、PROVINCE_ID問題 は、ベトナム語を表示できないことです。インターネットでヘルプを検索したところ、INSERT ステートメントの前に N' 文字を使用する必要があることがわかりました。では、このステートメントをどのように置き換えることができますか。PROVINCE_NAMENOTE

INSERT INTO ABC_temp values (N’abc,N’abc,N’abc)

ステートメントベローズによって:

SELECT * INTO ABC_temp SELECT * FROM DIM_PROVINCE

ありがとう!

4

2 に答える 2

1

その必要はないと思います。

'N'、文字列が Unicode リテラルであることを示すために使用されるため、Oracle のデータ型も Unicode である場合は、変換する必要がない場合があります (SQL Server は からVARCHARへの暗黙的な変換を行いますNVARCHAR)。

それ以外の場合は、値をキャストできます (「CAST および CONVERT (Transact-SQL)」を参照)。

于 2012-10-02T02:24:04.350 に答える
0

N を一重引用符の外側に置きます。

INSERT INTO ABC_temp values (N'abc', N'abc', N'abc')

SQL ステートメントは次の構文に従う必要があります。

insert into ABC_temp
select * from DIM_PROVINCE

(SQL Server では、このようにします。Oracle の構文についてはよくわかりません。)

于 2012-10-02T02:25:54.843 に答える