| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2574 人关注过本帖
标题:如何在Oracle存储过程里实现SQL局部动态查询
只看楼主 加入收藏
cgping
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-8-31
收藏
 问题点数:0 回复次数:3 
如何在Oracle存储过程里实现SQL局部动态查询

我在存储过程里有个SQL语句要用到表变量,就是表名是动态的,但是由于我那SQL语句长度太长,也比较复杂,如果整个SQL语句用动态执行的话以后维护会比较麻烦,我想只实行表名的动态处理,请问各位该怎么做?

[此贴子已经被作者于2007-9-12 17:54:01编辑过]

搜索更多相关主题的帖子: SQL Oracle 动态 局部 语句 
2007-09-12 17:51
ILoveMK
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:487
专家分:0
注 册:2007-2-12
收藏
得分:0 

SQL> begin
2 insert into &table values('马六');
3 end;
4 /
输入 table 的值: test
原值 2: insert into &table values('马六');
新值 2: insert into test values('马六');

PL/SQL 过程已成功完成。

SQL> select * from test;

COLA
----------
张三
李四
王五
马六


天下归心
2007-09-13 23:07
cgping
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-8-31
收藏
得分:0 

这位大侠的意思是为表定义一个变量test,可是要怎么定义表变量?总体在存储过程里连起来要怎么写?在存储过程里如果直接用select * from 表标量,编译就通不过了.对了,我是Oracle里的.请指点!非常感谢

2007-09-14 12:44
ILoveMK
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:487
专家分:0
注 册:2007-2-12
收藏
得分:0 

你是指这样么:

SQL> create or replace procedure test_pro(table_name varchar2) as
2 text varchar2(100);
3 begin
4 text:='insert into '||table_name||' values(''田七'')';
5 execute immediate text;
6 end;
7 /

过程已创建。

SQL> call test_pro('test');

调用完成。

SQL> select * from test;

COLA
----------
张三
李四
王五
马六
田七


天下归心
2007-09-14 13:21
快速回复:如何在Oracle存储过程里实现SQL局部动态查询
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019767 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved