我正在使用带有插入的选择来添加以前的记录值。这需要我执行以下代码:
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, 这样的字符,查询就会失败。
关于如何正确插入该值的任何想法?
我正在使用带有插入的选择来添加以前的记录值。这需要我执行以下代码:
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, 这样的字符,查询就会失败。
关于如何正确插入该值的任何想法?
是的,你是对的,我解决了这个问题。
我提出这个问题的方式并不完全真实。
我试图将值添加到这样的变量中
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;
当我使用上述查询时,由于特殊字符而失败。但是,当我修改它以使用选择查询时,它起作用了。
您真的不需要 PL/SQL 来进行此插入。最好这样写:
INSERT INTO table_a
SELECT 'a', value_with_sp_char, 'b', 'c'
FROM table_b
WHERE criterion_to_guarantee_single_row = true;