oracle 执行顺序 - Oracle / 基础和管理
SQL code:
declare
v_deptno number(2);
v_dname varchar2(14);
begin
dbms_output.put_line('请输入部门号和部门名:');
v_deptno:=&deptno;
v_dname:='&dname';
insert into dept01(deptno,dname) values(v_deptno,v_dname);
end;
/
执行结果:
Enter value for deptno: 67
Enter value for dname: gg
请输入部门号和部门名:
为什么“请输入部门号和部门名”这句话总是在后面啊!!!!!
oracle 是先编译,再执行,编译时,如果有要求输入的,就会提示你输入,这样,才能执行,所以“请输入部门号和部门名”这句话,总在后面
它是先获取所有的&的变量的值,然后再处理你的程序块。
就好像是先编译,再运行,而不是边解释边执行
恩
在执行的时候先是看里面是否有位置变量
有位置变量的话
就先给位置变量赋值
然后才进行其他的操作。
Enter value for..这两句不算输出,
是先赋值然后才有执行,所以 请输入 那句会在最后
如果用pl/sql developer执行这段程序就很容易看出来
这个怎么才能先输出字符,在输出要插入的值!??
有没有提高输出语句优先级的方法啊!!!
啊.....难道只能这样啦。。。。。
SQL code
Code highlighting produced by Actipro CodeHighli
相关问答:
安装了Oracle 10g,默认安装了orcl数据库,这个数据库能不能删除啊,还有我如果新建了其他数据库,怎么知道在web中登陆不同数据库的地址啊?
1
可以删除
2
在WEB地址栏中输入地址的时候指定新创建的数据库的IP ......
请问这个缓冲池是怎么回事啊?可以连接缓冲池利用其中的数据吧?怎么用?
这个是oracle自动做的,一般应用程序是操作不了的。
不能直接连接吗?
引用
不能直接连接吗?
不能
那缓冲池里的数据也不能查询 ......
假设table01 中有 以下资料
emp_no emp_name
------- ------------
0001 TOM
0002 JOHN
0003 MARY
常用电话
而我们要得到以下的OUTPUT (或是各种其他的output)
0001,TOM
0002,JOHN
......
我是在toad中输入下段sql
declare
TYPE test_rec IS record(
code varchar(10),
name varchar(30)
);
v_book test_rec;
......
我有两个表(A表和B表),机构完全相同:A 表建立触发器
当insert into A(id,name) values('1','zhangsan'); 我只想将name=zhangsan的时候将insert语句插入到B表中而A表不执行操作这个触发器应该怎么实现呢?
如: ......