Oracle
CREATE OR REPLACE PROCEDURE a_test
AS
t_sql VARCHAR2(2000);
t_a VARCHAR2(20);
t_b VARCHAR2(20);
t_c VARCHAR2(20);
t_d VARCHAR2(20);
BEGIN
t_c := 'f';
t_d := 'g';
--这里可为insert 等任何sql语句.
t_sql := 'SELECT MAX(a), MAX(b) FROM t1 WHERE c = :tempC OR c = :tempD';
EXECUTE IMMEDIATE t_sql
INTO t_a, t_b --如果不需要查询赋值,这里不用写 INTO XXX语句.
USING t_c, t_d -- 如果不需要使用变量,不用写USING XXX语句.
;
END a_test
SQL Server
CREATE PROCEDURE a_test
AS
DECLARE @t_sql NVARCHAR(2000); --sql server 动态语句要申明为NVARCHAR类型.
DECLARE @t_a VARCHAR(20);
DECLARE @t_b VARCHAR(20);
DECLARE @t_c VARCHAR(20);
DECLARE @t_d VARCHAR(20);
BEGIN
SET t_c = 'f';
SET t_