Loading [MathJax]/jax/output/CommonHTML/config.js
社区首页 >问答首页 >Oracle中临时表的替代方案

Oracle中临时表的替代方案
EN

Stack Overflow用户
提问于 2011-09-29 06:12:32
回答 2查看 28.3K关注 0票数 3

'#Temp'.

  • Insert

  • 在存储过程中创建临时表,例如使用select语句将值转换为'Temp‘表。插入到#Temp选择*从员工。
  1. 现在从这个临时表提取数据,例如。从#Temp选择*,其中#Temp.Id = @id &等等.

如何在Oracle中在存储过程中执行此操作

EN

回答 2

Stack Overflow用户

发布于 2011-09-29 06:27:02

你想要解决的业务问题是什么?在Oracle中需要使用临时表是非常罕见的。你为什么不干脆

代码语言:javascript
代码运行次数:0
复制
SELECT *
  FROM employees
 WHERE id = p_id_passed_in;

在其他数据库中,您通常创建临时表,因为读取器会阻塞编写器,因此您希望创建数据的单独副本,以避免阻塞任何其他会话。但是,在Oracle中,读取器从不阻止编写器,因此通常不需要保存数据的单独副本。

在其他数据库中,创建临时表是因为不想进行脏读取。但是,Oracle不允许脏读取。多版本读取一致性意味着Oracle将始终向您显示查询启动时存在的数据(如果设置了可序列化的事务隔离级别,则当事务启动时)。因此,不需要创建临时表来避免脏读。

如果确实希望在Oracle中使用临时表,则不会动态创建该表。您将在创建存储过程之前创建一个全局临时表。表结构对所有会话都是可见的,但数据只对插入该结构的会话可见。您将在过程中填充临时表,然后查询该表。有点像

代码语言:javascript
代码运行次数:0
复制
CREATE GLOBAL TEMPORARY TABLE temp_emp (
  empno number,
  ename varchar2(10),
  job   varchar2(9),
  mgr   number,
  sal   number(7,2)
)
ON COMMIT PRESERVE ROWS;

CREATE OR REPLACE PROCEDURE populate_temp_emp
AS
BEGIN
  INSERT INTO temp_emp( empno,
                        ename,
                        job,
                        mgr,
                        sal )
    SELECT empno, 
           ename,
           job,
           mgr,
           sal
      FROM emp;
END;
/

SQL> begin
  2    populate_temp_emp;
  3  end;
  4  /

PL/SQL procedure successfully completed.

SQL> select *
  2    from temp_emp;

     EMPNO ENAME      JOB              MGR        SAL
---------- ---------- --------- ---------- ----------
      7623 PAV        Dev
      7369 smith      CLERK           7902        800
      7499 ALLEN      SALESMAN        7698       1600
      7521 WARD       SALESMAN        7698       1250
      7566 JONES      MANAGER         7839       2975
      7654 MARTIN     SALESMAN        7698       1250
      7698 BLAKE      MANAGER         7839       2850
      7782 CLARK      MANAGER         7839       2450
      7788 SCOTT      ANALYST         7566       3000
      7839 KING       PRESIDENT                  5000
      7844 TURNER     SALESMAN        7698       1500
      7876 ADAMS      CLERK           7788       1110
      7900 SM0        CLERK           7698        950
      7902 FORD       ANALYST         7566       3000
      7934 MILLER     CLERK           7782       1300
      1234 BAR

16 rows selected.

不过,正如我说过的,在Oracle中真正想使用临时表是非常不寻常的。

票数 15
EN

Stack Overflow用户

发布于 2011-09-29 06:29:15

创建一个全局临时表。

代码语言:javascript
代码运行次数:0
复制
CREATE GLOBAL TEMPORARY TABLE <your_table>
ON COMMIT PRESERVE ROWS   # If needed.  Depends on your needs.
AS SELECT <your_select_query>;

然后,您可以根据需要在过程期间从表中进行选择。

http://www.oracle-base.com/articles/8i/TemporaryTables.php

http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:15826034070548

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7598631

复制
相关文章
在Ubuntu中修改hosts配置
最近在使用ubuntu开发,难免需要配置hosts,下面介绍以下使用命令进行配置的操作流程。
程思扬
2022/01/11
20.5K0
在docker-compose.yml中定义命令修改hosts文件
因为使用了他人提供的docker镜像,想对其中某个网络操作修改一下,需要修改某域名指向的IP,这就要修改容器内的/etc/hosts文件。又觉得每次重创建docker后手动去修改很麻烦,所以想到在docker-compose.yml中定义该操作。
用户2135432
2023/10/21
7540
Kubernetes在pod中配置hosts解析域名
当 DNS 配置以及其它选项不合理的时候,通过向 Pod 的 /etc/hosts 文件中添加条目,可以在 Pod 级别覆盖对主机名的解析。在 1.7 版本后,用户可以通过 PodSpec 的 HostAliases 字段来添加这些自定义的条目。
聂伟星
2020/09/11
7.2K0
在Ubuntu 20.04中禁用motd欢迎消息
本篇文章重点讲解一下在Ubuntu 20.04中禁用motd欢迎消息具体方法,有需要的小伙伴可以参考一下。
会长君
2023/04/25
2.6K0
Android – 在Gradle中更改APK文件名
默认情况下,Android Studio中的Gradle构建命名为.apk文件app-release.apk。对应用程序build.gradle文件进行了一些小的更改,可以将.apk名称更改为<app name>-release-<version>.apk。 需要在app的目录下面修改build.gradle文件。 第一步是将project.archivesBaseName设置为您的应用程序名称。 android { compileSdkVersion 25 buildToolsVersio
code_horse
2018/07/02
2.9K0
在 .NET 应用程序中运行 JavaScript
前几天我在做一个副业,意识到我需要使用一些 JavaScript 功能。一想到要再次处理 Node.js 和 npm,我就完全放弃了,所以我决定研究一下在 .NET 应用程序中运行 JavaScript 的可能性。很疯狂吧?实际上,这出乎意料的简单。
独立观察员
2022/12/06
2.6K0
在 .NET 应用程序中运行 JavaScript
在vmware中安装Android
首先可以前往https://osdn.net/projects/android-x86/下载自己喜欢的镜像,这里以安卓9的镜像为例
阿龙w
2022/12/25
2.7K0
在vmware中安装Android
Android模拟器修改hosts文件详解
在开发中遇到这样需求,需要在hosts文件中将某个网址域名与其对应的IP地址建立一个关联,比如关联这样一个ip:
全栈程序员站长
2022/11/01
4.1K0
Android模拟器修改hosts文件详解
在Android中调用WebService
某些情况下我们可能需要与Mysql或者Oracle数据库进行数据交互,有些朋友的第一反应就是直接在Android中加载驱动然后进行数据的增删改查。我个人不推荐这种做法,一是手机毕竟不是电脑,操作大量数据费时费电;二是流量贵如金那。我个人比较推荐的做法是使用Java或PHP等开发接口或者编写WebService进行数据库的增删该查,然后Android调用接口或者WebService进行数据的交互。本文就给大家讲解在Android中如何调用远程服务器端提供的WebService。 既然是调用WebService
欢醉
2018/01/22
2.3K0
【DB笔试面试727】在Oracle中,如何禁用HAIP?
说明,ora.cluster_interconnect.haip的ENABLED属性的原始值为1:
AiDBA宝典
2020/01/20
1.8K0
在Android中调用WebService
某些情况下我们可能需要与Mysql或者Oracle数据库进行数据交互,有些朋友的第一反应就是直接在Android中加载驱动然后进行数据的增删改查。我个人不推荐这种做法,一是手机毕竟不是电脑,操作大量数据费时费电;二是流量贵如金那。我个人比较推荐的做法是使用Java或PHP等开发接口或者编写WebService进行数据库的增删该查,然后Android调用接口或者WebService进行数据的交互。本文就给大家讲解在Android中如何调用远程服务器端提供的WebService。 既然是调用WebService
全栈程序员站长
2022/07/05
1.9K0
[译] 在 Android Instant App(安卓即时应用程序)中启用 ProGuard (混淆)
原文地址:Enabling ProGuard in an Android Instant App 原文作者:Wojtek Kaliciński 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold-m… 译者:JayZhaoBoy 校对者:hanliuxin5 Instant Apps(即时应用)和 4 MB 字节的限制 把一个已经存在的应用程序转换成 Android Instant App(安卓即时应用程序)是很有挑战性的,但对于模块及结构化你的项目而言却是一个很好的练习,更
Android 开发者
2018/05/31
2.6K0
Hosts文件修改
有时访问某些国外网站很卡(不包括无法访问的网站),很大的原因是这些网站的 CDN 的域名遭到 DNS 污染了。这时就可以选择直接访问源网站 IP ,绕过 DNS 解析,即通过修改主机 hosts 文件的方式,将域名和 IP 的对应关系直接记录下来,来加速对这些网站的访问。
hotarugali
2022/03/01
6.1K0
mac 技术篇-修改hosts文件,hosts文件位置
hosts 文件就在 /etc/hosts 路径里,我们直接是无法编辑的,需要通过下面的方法来修改我们的 hosts 文件。
小蓝枣
2020/09/23
43.7K0
ssh 协议中known_hosts文件
A通过ssh首次连接到B,B会将公钥1(host key)传递给A,A将公钥1存入known_hosts文件中,以后A再连接B时,B依然会传递给A一个公钥2,OpenSSH会核对公钥,通过对比公钥1与公钥2 是否相同来进行简单的验证,如果公钥不同,OpenSSH会发出警告, 避免你受到DNS Hijack之类的攻击。。
用户8418197
2022/02/14
3.2K0
在IPA中重签名iOS应用程序
当我们在对iOS应用程序执行黑盒安全测试时,我们一般只能从AppStore来访问和获取iOS应用程序。但是在大多数情况下,客户都会给我们提供一个IPA文件。在黑盒测试过程中,我们无法访问目标应用的源代码,因此通过Xcode将其部署到设备并进行测试,几乎是不可能的。但是有一种可行的解决方案,即使用我们手头上的配置文件来重新启动应用程序,并将其部署到我们的测试设备上。
FB客服
2020/03/10
2.3K0
在Flutter中制作指纹认证应用程序
现在许多手机都配备了指纹传感器,这使得用户登录和本地身份验证更容易,而且比使用密码更安全。
徐建国
2021/07/31
2.5K0
hosts文件是什么?hosts文件有什么作用?
对网络比较熟悉的朋友应该都知道hosts文件,在windows系统中和手机中,hosts文件有非常多的作用,但是具体来说有哪些作用呢?很多人却并不清楚,下面来为大家具体介绍一下hosts文件是什么、hosts文件有什么作用,希望能够为各位用户提供更多有关hosts文件的经验。
用户8715145
2021/07/02
5.6K0
Android 判断是否在通话中
转载请以链接形式标明出处: 本文出自:103style的博客 最后的判断代码: /** * 是否正在电话通话中 */ private boolean phoneIsInUse() { TelephonyManager mTelephonyManager = (TelephonyManager) activity.getSystemService(Context.TELEPHONY_SERVICE); int state = mTelephonyManager.getCallSt
103style
2022/12/19
1.3K0
点击加载更多

相似问题

关于dlib::frontal_face_detector优化

15

再现dlib frontal_face_detector()训练

116

使用python dlib时导入错误

11

无法使用全局安装的Dlib编译Dlib示例

10

使用pip安装Dlib时出错

60
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档