我正在尝试将数据插入到动态派生的表中。 我从MASTER_TABLE中选择了col1和col2的数据。根据col1和col2中的值,我在表SLAVE_col1value_col2value中插入数据。
我的SQL查询如下:
insert_query_str :='INSERT INTO SLAVE_'
|| Col1
|| '_'
|| Col2
|| ' VALUES ( '''
|| CUST_NAME
|| ''','''
|| APPLICATION_DATA
|| ''')';
EXECUTE IMMEDIATE insert_query_str;
然而,像JUM&A; A ABDUL FATTAH这样的名称会导致插入查询字符串看起来像这样
INSERT INTO SLAVE_XYZ_ABC VALUES ( 'JUM'A ABDUL FATTAH','APPSPECIFICDATA');
我在线上发现了一个缺少的逗号错误。 我知道如果我引用该名称,那么这个错误可以解决,但是当我尝试它时,它会硬编码||我也没有在查询中获得真实姓名。
我正在使用Oracle SQL 11g和Toad。
提前谢谢
答案 0 :(得分:2)
将占位符与USING
子句一起使用:
insert_query_str :='INSERT INTO SLAVE_'
|| Col1
|| '_'
|| Col2
|| ' VALUES ( :cust_name, :app_data )';
EXECUTE IMMEDIATE insert_query_str USING CUST_NAME, APPLICATION_DATA;