绑定变量的使用
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了绑定变量的使用,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3573字,纯文字阅读大概需要6分钟。
内容图文
不使用绑定变量: scott@ORCLselectename from emp where empno=7788; ENAME ---------- SCOTT scott@ORCLselectename from emp where empno=7369; ENAME ---------- SMITH sys@ORCLselectsql_text,loads,sql_id from v$sqlarea where sql_text like select
不使用绑定变量:
scott@ORCL>selectename from emp where empno=7788;
ENAME
----------
SCOTT
scott@ORCL>selectename from emp where empno=7369;
ENAME
----------
SMITH
sys@ORCL>selectsql_text,loads,sql_id from v$sqlarea where sql_text like 'select ename from empwhere empno=%';
SQL_TEXT LOADS SQL_ID
-------------------------------------------------------------------------------------------------------------------
selectename from emp where empno=7369 1 4s63dmxqzc2hg
selectename from emp where empno=7788 1 4b84jg8yc5nwa
使用绑定变量:
scott@ORCL>variablezbcxy number;
scott@ORCL>exec:zbcxy:=7788;
PL/SQL过程已成功完成。
scott@ORCL>selectename from emp where empno=:zbcxy;
ENAME
----------
SCOTT
scott@ORCL>exec:zbcxy:=7369;
PL/SQL过程已成功完成。
scott@ORCL>selectename from emp where empno=:zbcxy;
ENAME
----------
SMITH
sys@ORCL>select sql_text,loads,sql_id from v$sqlarea where sql_text like'select ename from emp where empno=%';
SQL_TEXT LOADS SQL_ID
----------------------------------------------------------------------------------------------------------------
selectename from emp where empno=:zbcxy 1 8y38u6k926y6h
在pl/sql中自动使用绑定变量(有些情况例外):
情况一:
scott@ORCL>createor replace procedure p_1(empno in number)
2 is
3 sql_text varchar2(100);
4 begin
5 sql_text:='select ename from emp whereempno='||empno;
6 execute immediate sql_text;
7 end;
8 /
过程已创建。
scott@ORCL>execp_1(7788);
PL/SQL过程已成功完成。
scott@ORCL>execp_1(7369);
PL/SQL过程已成功完成。
sys@ORCL>selectsql_text,loads,sql_id from v$sqlarea where sql_text like 'select ename from empwhere empno=%';
SQL_TEXT LOADS SQL_ID
---------------------------------------------------------------------------------------------------------------------
selectename from emp where empno=7369 1 4s63dmxqzc2hg
selectename from emp where empno=7788 1 4b84jg8yc5nwa
拼串的方式不走绑定变量
情况二:
scott@ORCL>createor replace procedure p_2(empno in number)
2 is
3 sql_text varchar2(100);
4 begin
5 sql_text:='select sal from emp where empno=:1';
6 execute immediate sql_text using empno;
7 end;
8 /
过程已创建。
scott@ORCL>execp_2(7788);
PL/SQL过程已成功完成。
scott@ORCL>execp_2(7369);
PL/SQL过程已成功完成。
sys@ORCL>selectsql_text,loads,sql_id from v$sqlarea where sql_text like 'select sal from empwhere empno=%';
SQL_TEXT LOADS SQL_ID
---------------------------------------------------------------------------------------------------------------
selectsal from emp where empno=:1 1 a29ya1gs6s7xq
情况三:
scott@ORCL>createor replace procedure p_3(enum in number)
2 is
3 v_deptno varchar2(30);
4 begin
5 select deptno||'is 2033' into v_deptno from emp where empno=enum;
6 dbms_output.put_line(v_deptno);
7 end;
8
9 /
过程已创建。
scott@ORCL>execp_3(7788);
20is2033
PL/SQL过程已成功完成。
scott@ORCL>execp_3(7369);
20is2033
PL/SQL过程已成功完成。
scott@ORCL>execp_3(7499);
30is2033
PL/SQL过程已成功完成。
sys@ORCL>selectsql_text,loads,sql_id from v$sqlarea where sql_text like '%2033%';
SQL_TEXT LOADS SQL_ID
---------------------------------------------------------------------------------------------------------------------------------
selectsql_text,loads,sql_id from v$sqlarea where sql_text like '%2033%' 1 2p7hsnpb9hgmv
SELECTDEPTNO||'is 2033' FROM EMP WHERE EMPNO=:B1 1 2tzyfarcukgq7
内容总结
以上是互联网集市为您收集整理的绑定变量的使用全部内容,希望文章能够帮你解决绑定变量的使用所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。