卡住了 求助

x__c 2012-08-07 10:55:13
只是想写一个存储过程来实现这样一句SQL查询:
select * from user_tt where t_age>35;

看我写的(别笑我哈,刚接触ORACLE)
create or replace procedure test_pro
is
begin
select * from user_tt where t_age>35;
end;

通不过,不知错在哪里。。。帮帮忙吧~~~~
...全文
119 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

create or replace procedure test_pro
is
sqlstr varchar2(1000);
begin
sqlstr := 'select * from user_tt where t_age>35';
execute immediate(sqlstr);
end;
jdsnhan 2012-08-08
  • 打赏
  • 举报
回复
查询结果用游标展现
ORAClE SE 2012-08-08
  • 打赏
  • 举报
回复
oracle 在pl/sql语句块中,也就是如begin..end 之类的语句中,使用select 语句必须与into一起使用才有意义。不然它检索出来的结果不知道放到哪里去。如楼上的,使用动态sql也行,只不过查询语句用动态sql,根本看不到数据的。
guo624587253 2012-08-08
  • 打赏
  • 举报
回复
CREATE OR REPLACE PROCEDURE 存储过程名字
(
参数1 IN NUMBER,
参数2 IN NUMBER
) IS
变量1 INTEGER :=0;
变量2 DATE;
BEGIN
XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
END 存储过程名字;

好好看看吧,是你end后面没有跟 存储过程名字 ,其他的都是浮云。
睿智天成 2012-08-08
  • 打赏
  • 举报
回复
不知道二楼的能否执行,如果是在存储过程中使用查询都是select into 一起使用的,select into就是将查询到的值赋给一个变量,如
[code=SQL]
CREATE OR REPLACE RROCEDURE PROC_SELECT
IS
S_ID INTEGER;
BEGIN
SELECT T.ID INTO S_ID FROM user_tt T where t_age>35;
END;
[/CODE]
  • 打赏
  • 举报
回复
总结三楼和四楼的 可以得到正解。
bjliuzg 2012-08-08
  • 打赏
  • 举报
回复
CREATE OR REPLACE PROCEDURE 存储过程名字
(
参数1 IN NUMBER,
参数2 IN NUMBER
) IS
变量1 INTEGER :=0;
变量2 DATE;
BEGIN
XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
END 存储过程名字;

好好看看吧,是你end后面没有跟 存储过程名字 ,其他的都是浮云。
  • 打赏
  • 举报
回复
oracl存储过程 查询和sqlserver 是不一样的,只能用游标

17,086

社区成员

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

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