我要删除表中某个字段值不在数组中的元素,请问sql语句怎么写,谢谢
DNS 是一个字符串数组
DNS.EXTEND;
DNS(1):='yy';
v_SQL:='DELETE FROM USER_INFO WHERE USER_DN NOT IN :1';
EXECUTE IMMEDIATE v_SQL USING DNS;
DNS 是一个字符串数组
DNS.EXTEND;
DNS(1):='yy';
v_SQL:='DELETE FROM USER_INFO WHERE USER_DN NOT IN :1';
EXECUTE IMMEDIATE v_SQL USING DNS;
type array_type is varray(20) of varchar2(100);
a array_type :=array_type('1','2','3','4','5');
v_str varchar2(100);
v_sql varchar2(1000);
begin
for i in 1..a.count loop
v_str := v_str||''''||a(i)||''',';
end loop;
dbms_output.put_line('v_str='||v_str);
v_sql := 'DELETE FROM USER_INFO WHERE USER_DN NOT IN('||substr(v_str,1,length(v_str)-1)||')';
dbms_output.put_line('v_sql='||v_sql);
execute immediate v_sql;
end;