当前位置: 代码迷 >> Oracle开发 >> 卡住了
  详细解决方案

卡住了

热度:53   发布时间:2016-04-24 07:23:38.0
卡住了 求助
只是想写一个存储过程来实现这样一句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;

通不过,不知错在哪里。。。帮帮忙吧~~~~

------解决方案--------------------
oracl存储过程 查询和sqlserver 是不一样的,只能用游标
------解决方案--------------------
SQL code
create or replace procedure test_pro  issqlstr varchar2(1000);begin  sqlstr := 'select * from user_tt where t_age>35';  execute immediate(sqlstr); end;
------解决方案--------------------
oracle 在pl/sql语句块中,也就是如begin..end 之类的语句中,使用select 语句必须与into一起使用才有意义。不然它检索出来的结果不知道放到哪里去。如楼上的,使用动态sql也行,只不过查询语句用动态sql,根本看不到数据的。
------解决方案--------------------
CREATE OR REPLACE PROCEDURE 存储过程名字 

参数1 IN NUMBER, 
参数2 IN NUMBER 
) IS 
变量1 INTEGER :=0; 
变量2 DATE; 
BEGIN 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
END 存储过程名字;

好好看看吧,是你end后面没有跟 存储过程名字 ,其他的都是浮云。

------解决方案--------------------
总结三楼和四楼的 可以得到正解。
------解决方案--------------------
不知道二楼的能否执行,如果是在存储过程中使用查询都是select into 一起使用的,select into就是将查询到的值赋给一个变量,如
SQL code
CREATE OR REPLACE RROCEDURE PROC_SELECT ISS_ID INTEGER;BEGINSELECT T.ID INTO S_ID FROM user_tt T where t_age>35;END;
------解决方案--------------------
CREATE OR REPLACE PROCEDURE 存储过程名字
(
参数1 IN NUMBER,
参数2 IN NUMBER
) IS
变量1 INTEGER :=0;
变量2 DATE;
BEGIN
XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
END 存储过程名字;

好好看看吧,是你end后面没有跟 存储过程名字 ,其他的都是浮云。
------解决方案--------------------
查询结果用游标展现
  相关解决方案