0

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

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, 这样的字符,查询就会失败。

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

4

2 回答 2

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;

当我使用上述查询时,由于特殊字符而失败。但是,当我修改它以使用选择查询时,它起作用了。

于 2013-01-15T04:12:09.447 回答
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;
于 2013-01-15T08:24:05.787 回答