0
テーブルを更新するSAP HANA手順があります。私は、動的SQLクエリを作成しようとしている、これは私の例です:SAP HANA手順のパラメータを使用した動的更新クエリ
declare _field varchar(100) := 'NAME';
declare _name varchar(100) := 'david';
declare _id integer := 1;
DECLARE SQL_STR VARCHAR(3000);
SQL_STR := 'UPDATE "_SYS_BIC"."TEST_TABLE" SET "'||_field||'" = '||_name||' WHERE "ID" = '||:_id;
EXECUTE IMMEDIATE (:SQL_STR);
しかしコンソールで、私はこのエラーを持っている:
私はそれを修正するにはどうすればよいService exception: [260] invalid column name
?
構文エラーを修正しましたが、ここで取り組んでいるアプローチは実際には "柔軟性がなく"、他の言語で作業していたプログラマーによって書かれたSQLコードでよく見られます。 このアプローチの多くの短所の中には、コードがあなたのデータモデルへの「見えない」依存性を持っていて、コンパイル時にステートメントをチェックすることができず、SQLインジェクションの大きな変更があります。 .. 代わりに、データベースの特定のエンティティで動作する特定のプロシージャをビルドします。 –
私はこのアプローチの大きな問題について知っていますが、多くの理由から、この場合、私はこの方法を選択する必要があります。助けてくれてありがとう! – Shiroga