1,索引为什么能提高查询速度,从DBA以及开发的角度阐述下!2,绑定变量是什么?有何优缺点,在存储过程中在举几个示例! 如果不用绑定变量,该如何实现类似的功能?3,动态sql是什么,语法怎么写,举示例!4,表T(a,b,c,d),以c排序查询第21-31列数据,写出sql,至少2种方式,并且比较下查询效率以及原理。5,写一个存储过程,表A里有3个字段name ,id,dept,name为条件,查询出dept值并且返回。
1,4,5 我做出来了。2跟4没有做,因为忘记了绑定变量以及动态sql怎么写(郁闷,基本功不扎实啊)!声明这都是笔试,不能baidu以及google的!大家谁会做的,留个答案吧,万分感谢啊!
1,4,5 我做出来了。2跟4没有做,因为忘记了绑定变量以及动态sql怎么写(郁闷,基本功不扎实啊)!声明这都是笔试,不能baidu以及google的!大家谁会做的,留个答案吧,万分感谢啊!
解决方案 »
- 数据库备份的时候,数据被修改了怎么办?
- ORACLE中有没有SQL语句,能对数据库进行备份、还原?
- 高分 求一个存储过程。
- 如何设置用户权限让他不能看到sys等用户的view(视图)? 在线急等,现场给分
- 关于自动编号的问题
- 求一句sql语句?name字段中如果没有‘///’字符,就把name字段中的内容末尾,去掉空格,然后加上“///”
- 送分! 一些Oracle入门级的问题
- 怎样把数据库里的所有表结构导出到另一数据库?
- 如何得到两个日期相减是多少年或多少月????
- ORCL建表题
- ORA-01043: user side memory corruption [], [], [], []
- 用PL/SQL的PRINT打的东东,在哪可以看到?
就是注意'的用法
执行execute immediate
1.select * from (select rownum rid from t) where rid between 21 and 31;
2.select * from(select c1.*, row_number() over(order by c DESC) rid from t t1) where rid between 21 and 31;
绑定变量举例:create or replace procedure quy(p_empno in number)
as
begin
for i to 100
begin
sql:= select * from student where name ='Robert' || i ;
end
commit;
end; 3 动态SQLexecute immediate 'select * from dual'
2.select * from(select c1.*, row_number() over(order by c DESC) rid from t t1) where rid between 21 and 31;
看看这篇文章吧,比我说得清楚多了。
SELECT pair_id, rid
FROM (SELECT pair_id, ROWNUM rid
FROM (SELECT *
FROM cbl_pair
ORDER BY pair_id))
WHERE rid BETWEEN 2 AND 3;SELECT *
FROM (SELECT t.*, ROW_NUMBER () OVER (ORDER BY pair_id) rid
FROM cbl_pair t)
WHERE rid BETWEEN 2 AND 3;
SELECT pair_id, rid
FROM (SELECT pair_id, ROWNUM rid
FROM (SELECT *
FROM cbl_pair
ORDER BY pair_id))
WHERE rid BETWEEN 21 AND 31;SELECT *
FROM (SELECT t.*, ROW_NUMBER () OVER (ORDER BY pair_id) rid
FROM cbl_pair t)
WHERE rid BETWEEN 21 AND 31;
as v_SqlCommand varchar2(4000); v_Result varchar2(10);
begin
if v_Condition = 'Testing' then
v_SqlCommand := 'insert into employee (ID) values (150)'; --这个字符串一定要能拼成能执行的Sql语句 v_Result := 'OK';
else
v_SqlCommand := 'delete employee where ID = 150'; v_Result := 'Nothing';
end if; execute immediate v_SqlCommand; commit; return v_Result;exception
when others then
return 'Error'||sqlerrm;
end;
1,索引带来的方便性是不分DBA和开发者的,oracle的索引能够提供最快获取数据的路径,也是oracle减小磁盘I/O压力的主要途径之一。
索引的类型有
b-tree index/bitmap index/function index/patitional index(local/global)等等
2,绑定变量是指将查询的条件用变量替代,而不是用文本直接书写,因为用静态文本写出来的SQL在不同条件下需要反复解析,而绑定变量后,在查询bind value在运行时传递,然后绑定执行。优点是减少硬解析,降低CPU的争用,节省shared_pool ;缺点是不能使用histogram,sql优化比较困难;另外有时还会导致错误的执行计划。
:ids就是指绑定变量