create or replace procedure SPinsert(ptable_name1 in varchar2)
as
begin
execute immediate 'insert into ' || ptable_name1 || '(id ,name)' || 'values(1,aaa)';
end;
这里的id为number类型的,name为varchar2类型的,怎么让aaa输出时是'aaa'的形式啊,上面的这句怎么才能编译后执行啊
as
begin
execute immediate 'insert into ' || ptable_name1 || '(id ,name)' || 'values(1,aaa)';
end;
这里的id为number类型的,name为varchar2类型的,怎么让aaa输出时是'aaa'的形式啊,上面的这句怎么才能编译后执行啊
CREATE OR REPLACE PROCEDURE SP_TEST_XF(PTABLE_NAME IN VARCHAR2) IS
V_SQL VARCHAR2(100) := '';
BEGIN
V_SQL := 'INSERT INTO '||PTABLE_NAME||'(ID,NAME) VALUES(1,''aaa'')';
DBMS_OUTPUT.PUT_LINE('V_SQL_1: '||V_SQL);
V_SQL := 'INSERT INTO '||PTABLE_NAME||'(ID,NAME) VALUES(1,aaa)';
DBMS_OUTPUT.PUT_LINE('V_SQL_2: '||V_SQL);
END;
SQL> SET SERVEROUTPUT ON
SQL> EXEC SP_TEST_XF('MY_TABLE_NAME');V_SQL_1: INSERT INTO MY_TABLE_NAME(ID,NAME) VALUES(1,'aaa')
V_SQL_2: INSERT INTO MY_TABLE_NAME(ID,NAME) VALUES(1,aaa)PL/SQL procedure successfully completedSQL>
10g里用!!可以使中间的'不用转义