oracle 中带参数的存储过程要怎么写呀?怎么执行?

stg609 2009-02-18 10:38:53
这个参数用于指定一个表名,也就是说存储过程内部根据传入的参数查询指定的表。

不知道如何写。

下面的代码是我用来表达意思的,无法执行。希望大家帮我看看,正确的应该怎么写呀?
create procedure Myproc1(tablename in varchar2)
begin
select * from tablename
end

执行又该怎么样呢?
...全文
199 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
stg609 2009-02-19
  • 打赏
  • 举报
回复
谢谢
宇尘埃 2009-02-19
  • 打赏
  • 举报
回复
楼上正解
zcs_1 2009-02-19
  • 打赏
  • 举报
回复
给你一个例子,根据传入的表名返回表的记录数:

create procedure Myproc1(tablename in varchar2, nums OUT number) AS
begin
EXECUTE IMMEDIATE 'select COUNT(*) from '||tablename INTO nums;
end ;
/

SET SERVEROUTPUT ON
DECLARE
l_tablename VARCHAR2(30);
l_nums NUMBER;
BEGIN
l_tablename := 'USER_TABLES';
Myproc1(l_tablename, l_nums);
--下面一行显示l_nums
DBMS_OUTPUT.PUT_LINE(l_nums);
END;
/
hobinly 2009-02-19
  • 打赏
  • 举报
回复
ORACLE 返回数据可以使用游标
你那个在SQL SERVER上是可以执行的

stg609 2009-02-18
  • 打赏
  • 举报
回复
主要是怎么写这个存储过程
oraclelogan 2009-02-18
  • 打赏
  • 举报
回复
[Quote=引用楼主 stg609 的帖子:]
这个参数用于指定一个表名,也就是说存储过程内部根据传入的参数查询指定的表。

不知道如何写。

下面的代码是我用来表达意思的,无法执行。希望大家帮我看看,正确的应该怎么写呀?
create procedure Myproc1(tablename in varchar2)
begin
select * from tablename
end

执行又该怎么样呢?
[/Quote]

EXEC Myproc1('tablename')?

17,382

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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