代码示例:
-- Created on 2021/7/6 by YUBL declare sql_cmd varchar2(2000); m number(4); n number(4); x number(4):=12; y number(4):=10; begin sql_cmd:=' declare BEGIN select :x+:y/2,:y-:x into :m,:n from dual; END;' ; execute immediate sql_cmd using y,x,out m,out n; dbms_output.put_line(m); dbms_output.put_line(n); end;
输出结果:
16
2
说明:入参和出参是按在sql_cmd中的":参数名" 出现的顺序进行赋值的。所以动态sql中的:x 实际为入参y的值:10,sql中的:y实际为入参x的值:12
出参m,n 也是一样。