社区
Oracle
帖子详情
继续帮我看看(存储过程中的临时表)
Caobiao
2003-10-17 12:07:33
http://expert.csdn.net/Expert/topic/2365/2365481.xml?temp=9.360904E-02
谢谢!
...全文
37
9
打赏
收藏
继续帮我看看(存储过程中的临时表)
http://expert.csdn.net/Expert/topic/2365/2365481.xml?temp=9.360904E-02 谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
LGQDUCKY
2003-10-17
打赏
举报
回复
我是说存储过程里不能直接调用数据库定义语句。需要动态SQL来执行。
对应数据库操纵语句是可以直接写的,如:
INSERT INTO TABLE_NAME VALUES('AA',334);
SELECT AA INTO S_AA FROM TABLE_NAME;
这些都可以还有什么疑问呢?
Caobiao
2003-10-17
打赏
举报
回复
我的错误的过程:
create or replace procedure ProName
is
begin
......
create global temporary table Tmp_EspecialUser (
EspecialUserID varchar(11) null,
CutListID varchar(11) null,
Detail varchar(255) null
) on commit preserve rows ;
......
end proName;
---网友提出解决方案:--------------------------------------------------
use dynamic sql:
execute immediate 'create ...';
通过!
---新问题--------------------------------------------------------------
但是我接下来就要对这个临时表进行很多操作那不是每个都得进行动态操作?
例如我要对那进行数据的插入,
然后对它定义游标对里面的数据进行分析。
如果每个操作都用execute immediate str;这种形式那不惨了呀?
有没有解决方案?谢谢
JCC0128
2003-10-17
打赏
举报
回复
上面的贴子发错了,sorry!
JCC0128
2003-10-17
打赏
举报
回复
http://expert.csdn.net/Expert/topic/2076/2076788.xml?temp=.3047449
给分
JCC0128
2003-10-17
打赏
举报
回复
除非你delete 临时表,即时你关闭oracle,重启计算机,临时表也不会消失,这就是oracle临时表的好处!它跟sql server临时表不一样。开始搞忘说这个特性了。
Caobiao
2003-10-17
打赏
举报
回复
正如 JCC0128(看到delphi报表就想呕吐)所说,多用户同时操作肯定是数据混乱,但是把create语句在sql plus里执行一次后,把SQL plus关掉,那个临时表没有自动删除吗?还有,两个用户同时调用时不会对同一个临时表进行操作了吗?
hushuangyang(hushuangyang) 所说的 指明基于事务的怎么写的?
谢谢 !
hushuangyang
2003-10-17
打赏
举报
回复
临时表有两种类型,一种是基于session的,另外一种是基于事务的,你可以在建立临时表时指明基于事务的即可。
JCC0128
2003-10-17
打赏
举报
回复
不同意楼上的!
改为静态表的话,就是所有的会话(应用程序)公用一个表,多用户同时操作肯定是数据混乱。
临时表的实质就是 为每个会话(应用程序) 都保存各自独立的数据。存储过程的话我觉得是每个用户的数据不同,故必须用临时表。。。(附:我们现在的系统用的三层结构,多个客户端,应用层只有一个,所有只有一个会话与后台数据库通信,三层里面临时表好像发挥不了作用,这个我也没实际测试过。)
楼主的情况 将临时表先创建好就行了,把你的create语句在sql plus里执行一遍就行了
实际上如果你操作有水平的话,可改变临时表的字段,因为我们可将sql 语句写成字符串的形式来逃过oracle 对临时表的编绎检查(针对sql 语句能否对临时表操作)
Lastdrop
2003-10-17
打赏
举报
回复
楼主的意思是随后的操作语句也是在这个存储过程中进行,当然也得使用动态SQL了。
其实,这也没什么大不了的,为了通用性,也就是编写起来有点麻烦,可执行得一点也不麻烦吗。要不,你只能将你的临时表改为静态创建的了。
mysql
存储过程
临时表
_mysql
存储过程
中
使用
临时表
当工作在很大的表上时,您可能偶尔需要运行很多查询获得一个大量数据的小的子集,不是对整个表运行这些查询,而是让MySQL每次找出所需的少数记录,将记录选择到一个
临时表
可能更快些,然后多这些表运行查询。创建
临时表
很容易,给正常的CREATE TABLE语句加上TEMPORARY关键字:CREATE TEMPORARY TABLE tmp_table (name VARCHAR(10) NOT NULL...
sqlserver
存储过程
中
使用
临时表
的问题
2023年6月6日08:52:15 因为最近接触的his系统一些
存储过程
做数据统计,一个
存储过程
就要使用1-3个
临时表
,这些
存储过程
是零几年的写得,和我们这个时代的写的
存储过程
习惯不太一样,就好奇为什么要使用这么多的
临时表
临时表
的基本概念 在深入
临时表
之前,我们要了解一下会话(Session),一个会话仅仅是一个客户端到数据引擎的连接。在SQL Server Management Stud...
在oracle
存储过程
中
创建
临时表
首先需要对Oracle
中
临时表
有个大概的了解: 1简介 ORACLE数据库除了可以保存永久表外,还可以建立
临时表
temporary tables。这些
临时表
用来保存一个会话SESSION的数据, 或者保存在一个事务
中
需要的数据。当会话退出或者用户提交commit和回滚rollback事务的时候,
临时表
的数据自动清空, 但是
临时表
的结构以及元数据还存储在用户的数据字典
中
。
临时表
只在ora...
mysql 过程
临时表
_在
存储过程
mysql
中
创建
临时表
我有SQL Server的经验。这是我第一次使用mysql。我想在
存储过程
中
创建一个
临时表
。我不知道我在这里错过了什么。我想做的是:循环遍历事件及其匹配项,并将这些匹配项插入到
临时表
中
,然后从该
临时表
返回结果。这是我的
存储过程
代码。CREATE DEFINER=`root`@`localhost` PROCEDURE `APP_GetMatchListbyScoreboardOperatorID`...
存储过程
临时表
写
存储过程
时,如果join的表是固定的,那么可以不必声明
临时表
及其
中
的字段,直接: select (要查询的字段名)into
临时表
名 比如下面这段sql 语句: SELECT Distinct a.SKU_Id, a.Quantity, d.SupplierId into #tbInboundPlan --直接将字段值插入
临时表
FROM [ms_inbound_draftitem] a L...
Oracle
17,088
社区成员
55,238
社区内容
发帖
与我相关
我的任务
Oracle
Oracle开发相关技术讨论
复制链接
扫一扫
分享
社区描述
Oracle开发相关技术讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章