外国語が含まれるSQL文の実行でハマった。

vb.netでoracleRDSにinsert文を実行する際に、外国語がテキストに含まれていて、ハマった。。。
対応としては、パラメータ渡しでinsert文を実行すればOKだった。

insert文を文字列結合で一つにして実行したら、文字コードが日本語じゃない、その項目でinsert文が欠落し、「カンマがありません」と言われてエラーとなる。でも、DBアプリでSQLをそのまま実行するとOKだったので、何が悪いかつかめないまま二日間が過ぎた。。。
強制的にshift-jisとか変換すると「?」になったりして、vb.net側ではどうにもならん。外国語でinsert文が欠落しているのは分かったけど、対処が全然わからなかった。ググって色々見ていくとパラメータ渡しなら、うまくいくとあったのでやってみたら、いけた。oracle側のデータ型をNVarchar2にして、パラメータ渡し側もNVarchar2に設定した。

基本的な事なんだろうけど、ハマった。