SQL插入查询,其值为JUM' A ABDUL FATTAH导致丢失,错误

时间:2016-11-28 17:41:59

标签: sql plsql

我正在尝试将数据插入到动态派生的表中。 我从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。

提前谢谢

1 个答案:

答案 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;