请教oracle存储过程基本问题,简单查询问题,我是初学者,求教了,谢谢大侠们啊! 5
createorreplaceprocedurebookinfoSelectisbeginselect*frombookInfo;end;--执行存储过程callbook...
create or replace procedure bookinfoSelect
is
begin
select*from bookInfo;
end;
--执行存储过程
call bookinfoSelect
报错,不是有效的存储过程,怎么办,帮帮忙啊? 展开
is
begin
select*from bookInfo;
end;
--执行存储过程
call bookinfoSelect
报错,不是有效的存储过程,怎么办,帮帮忙啊? 展开
5个回答
展开全部
在begin end之间不能直接写select * from table;
如果要写select * from table必须要有用一个参数接收查询出来的结果。不然会有问题,
你可以看看过程有没有正确。
会报以下错误:
PLS-00428 an INTO clause is expected in this SELECT statement
Cause: The INTO clause of a SELECT INTO statement was omitted. For example, the code might look like:
SELECT deptno, dname, loc FROM dept WHERE ...
instead of:
SELECT deptno, dname, loc INTO dept_rec FROM dept WHERE ...
In PL/SQL, only a subquery is written without an INTO clause.
Action: Add the required INTO clause.
如果要写select * from table必须要有用一个参数接收查询出来的结果。不然会有问题,
你可以看看过程有没有正确。
会报以下错误:
PLS-00428 an INTO clause is expected in this SELECT statement
Cause: The INTO clause of a SELECT INTO statement was omitted. For example, the code might look like:
SELECT deptno, dname, loc FROM dept WHERE ...
instead of:
SELECT deptno, dname, loc INTO dept_rec FROM dept WHERE ...
In PL/SQL, only a subquery is written without an INTO clause.
Action: Add the required INTO clause.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看看 create or replace procedure 你这个存储过程,应该是 Oracle下的。
Oracle 的存储过程,与 SQL Server 的存储过程不一样。
SQL Server 的存储过程, 可以简单的写一个 SQL 语句,让存储过程返回结果集.
但是 Oracle 不行。
具体的例子,可看参考资料中,后面的 存储过程返回结果集 部分。
Oracle 的存储过程,与 SQL Server 的存储过程不一样。
SQL Server 的存储过程, 可以简单的写一个 SQL 语句,让存储过程返回结果集.
但是 Oracle 不行。
具体的例子,可看参考资料中,后面的 存储过程返回结果集 部分。
参考资料: http://hi.baidu.com/wangzhiqing999/blog/item/0991d3124070854420a4e9b4.html
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
sql server 中这样是无问题的。在oracle中有问题:必须先定义变量,将输出插入到定义的变量中。
假如bookInfo表只有一个字段bookid,上句修改为:
create or replace procedure bookinfoSelect
is
bookid int
begin
select bookid into int from bookInfo;
end;
假如bookInfo表只有一个字段bookid,上句修改为:
create or replace procedure bookinfoSelect
is
bookid int
begin
select bookid into int from bookInfo;
end;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你是要写存储过程进行查询表是把。
create or replace procedure bookinfoSelect
is
begin
select * from bookinfo;
end;
保存后
set serveroutput on 输入选项开关
exec bookinfoSelect
create or replace procedure bookinfoSelect
is
begin
select * from bookinfo;
end;
保存后
set serveroutput on 输入选项开关
exec bookinfoSelect
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
create or replace procedure bookinfoSelect
is
v_bookid bookInfo.bookid%type;
begin
select bookid into v_bookid from bookInfo where rownum=1;
end;
is
v_bookid bookInfo.bookid%type;
begin
select bookid into v_bookid from bookInfo where rownum=1;
end;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询