PLSQL从Select中将特殊字符值插入表中

时间:2013-01-15 02:45:09

标签: plsql

我正在使用带有插入的select来添加先前的记录值。这要求我执行以下代码:

insert into My_table 
values ('a', select value_with_sp_char from table where criterion_to_guarantee_single_row=true), 'b','c')

现在每当value_with_sp_char有一个像_,&,%,。,comma这样的字符时,查询就会失败。

关于如何正确插入该值的任何想法?

2 个答案:

答案 0 :(得分:0)

是的,你是对的,我解决了这个问题。

我对这个问题的表达方式并不完全真实。

我试图将值添加到变量中,如此

Declare
    lv_txt_var varchar2(255) := '';
Begin
    select value_with_sp_char into lv_txt_var from table where criterion_to_guarantee_single_row=true;
if (input_param = null)
    insert into table values ('a', lv_txt_var, 'b', 'c');
end if;

当我使用上面的查询时,由于特殊的char而失败。但是,当我修改它以使用选择查询时,它可以工作。

答案 1 :(得分:0)

此插入实际上不需要PL / SQL。用这种方式写它会更好:

INSERT INTO table_a
SELECT 'a', value_with_sp_char, 'b', 'c'
FROM   table_b
WHERE  criterion_to_guarantee_single_row = true;