oracle 查询问题

jichunfeng 2011-12-07 09:44:15
在oracle 存储过程里怎么实现select * from t ,就是像sql那样实现这样的查询
...全文
106 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jichunfeng 2011-12-08
  • 打赏
  • 举报
回复
我想在loop 里实现 select xuehao,xingming,chengji from t 该怎么写
hfxl1108 2011-12-08
  • 打赏
  • 举报
回复
DECLARE
v_xuehao t.xuehao%TYPE;
v_xingming t.xingming%TYPE;
v_xingming t.chengji%TYPE;
CURSOR a IS select xuehao,xingming,chengji from t
BEGIN
OPEN a;
LOOP
FETCH a INTO v_xuehao,v_xingming,v_xingming;
dbms_output.put(v_xuehao||v_xingming||v_xingming);
EXIT WHEN a%NOTFOUND;
END;
hfxl1108 2011-12-08
  • 打赏
  • 举报
回复
可以这样

DECLARE
v_xuehao t.xuehao%TYPE;
v_xingming t.xingming%TYPE;
v_xingming t.chengji%TYPE;
CURSOR a IS select xuehao,xingming,chengji from t
BEGIN
OPEN a;
LOOP
FETCH a INTO v_xuehao,v_xingming,v_xingming;
dbms_output.put(v_xuehao||v_xingming||v_xingming);
EXIT WHEN a%NOTFOUND;
END;
music_mouse 2011-12-08
  • 打赏
  • 举报
回复
游标里面是表的一条记录:
select * into v_tmp from t;
声明时定义v_tmp t%rowtype;
loop时可以直接用:
v_tmp.xuehao,v_tmp.xingming,v_tmp.chengji。。
我心飞翔 2011-12-08
  • 打赏
  • 举报
回复
如果返回的记录只有一条,可以
select * into 一个记录类型的变量 from t;

如果返回多的记录有多条,就要使用光标了

CREATE OR REPLACE PROCEDURE ProcedureTest2 IS
-- 定义光标
CURSOR c1 IS SELECT * FROM t;
BEGIN
-- 光标FOR循环
FOR r IN c1
LOOP
--对r,即每一条记录进行使用和处理。
END LOOP;
END ProcedureTest2;

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧