【oracle笔记】外部过程

Oracle 外部表详解 使用Oracle外部表功能可以执行下面两种操作。 1.利用SQL以透明方式从OS都好分割值(CSV)文件选择数据,执行将这些文件中的数据加载到数据库之类的任务。 2.创建用于传输数据的,跨平台的数据泵文件,还可以通过压缩和加密方式创建这些文件,提高数据传输的效率和安全性。 外部表的一个通常用法,是通过SQL*Plus从OS的CSV文件中选择数据。当通过这种方式使用外部... 阅读详情

        oracle存储的过程可以采用PL/SQL或Java语言进行编写。而在某些情况下,开发人员可能希望使用其他语言。这时就会用到外部过程调用,即在PL/SQL程序内调用其他语言编写的程序。oracle支持的外部过程必须使用C语言编写。与OCI库连接的用户进程软件,则可以使用C或C++语言编写。

         一般来说,性能是使用C语言的原因。PL/SQL存储过程或Java存储过程都不能被操作系统直接执行,在调用存储过程的时候,都需要进行大量的解释。而以C语言编写的函数不仅可以被编译为对象代码并进行链接,而且还可以加快许多操作(如跳转)。

        PL/SQL过程调用外部过程时,外部过程代理程序会将PL/SQL调用转换成C调用,载入共享对象库,并执行所请求的C语言函数。

        调用外部过程的时候,侦听器会启动一个被称为外部过程代理程序的进程,该进程使用其唯一的函数,动态地连接和运行外部过程来响应数据库用户的调用。在执行代码之前,动态链接库必须先完成动态的连接。

       在默认情况下,外部过程代理程序只从ORACLE_HOME/bin目录中载入共享对象库,以保障内置的安全性。可以在listener.ora文件中指定代理程序能够载入的共享库。

       外部过程(C语言函数)经过编译,作为共享对象库链接操作系统。

      

创建外部过程:

编写、编译、连接C语言函数

创建Oracle共享对象库,即创建逻辑指针,指向编程人员交付的物理文件(共享对象库)。

创建调用C语言函数的PL/SQL过程。


配置侦听器启动外部过程代理程序

       代理程序根据需要启动,每个回话都有一个代理程序,并且在回话的生存期内保持活动状态,使用共享内存。可以通过Net Manager 或者手动编辑listener.ora配置外部过程代理程序。

在listener.ora加入如下:

EXT_PROC_LISTENER =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
  )


SID_LIST_EXT_PROC_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (PROGRAM = extproc)
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
    )
  )


配置侦听器之后,我们还需要配置Oracle Net的客户端,从而使服务器进程在其希望运行某个外部过程时能够找到这个外部过程。此时,我们需要配置数据库服务器上的tnsname.ora文件或通过Net Manager进行配置

在tnsname.ora文件中加入:

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(Key = EXTPROC1))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )
连接串的别名为EXTPROC_CONNECTION_DATA,Oracle始终会通过查找这个别名来发现外部过程侦听器的地址。外部过程侦听器的地址为IPC键EXTPROC1,必须与侦听器配置文件中指定的侦听器地址相匹配。



       

  



        Java语言解释执行的过程:Java源程序经过编译生成java字节码(不依赖于机器硬件平台的二进制代码),然后由Java虚拟机对字节码进行解释执行。解释执行的过程分为三步:代码装入(类下载器完成)、校验代码(字节码校验器)、运行代码。JVM是字节码和硬件系统之间的接口。运行jvm字符码的工作是由解释器来完成的。

    C语言编译执行的过程,分为编译和连接两个阶段。编译阶段就是读取源程序,对其进行词法和语法分析,将高级语言指令转换成等效的汇编代码,再由汇编程序转换为机器语言,生成目标文件。连接程序就是将有关的目标文件彼此相连,以及用到的库文件进行组织形成可执行代码。

即编译阶段将源程序(*.c)转换成为目标代码(,一般是obj文件),连接阶段是把源程序转换成的目标代码(obj文件)与你程序里面调用的库函数对应的代码连接起来形成对应的可 执行文件(exe文件)。

       


解析Oracle外部表:数据跨平台移动的利器 通过以上详细示例,展示了如何使用ORACLE_LOADER和ORACLE_DATAPUMP驱动程序创建外部表,并进行数据的加载和查询操作。**ext_table (Metadata Only)**:这是定义外部表的数据库对象,只包含元数据。此视图显示所有表的信息,包括普通表和外部表。可以查看表的名称、所属模式、表类型等信息。可以查看外部表的名称、所属模式、驱动程序类型等信息。在Oracle数据库中,使用外部表读取文本文件的数据时,通常会使用。:可以直接查询和连接外部数据与数据库中的表,无需先加载。 阅读详情

相关推荐

保姆级教程:在S32K312上配置C40驱动,实现Flash读写(基于RTD 4.4.2)

本文详细介绍了在S32K312微控制器上配置C40驱动实现Flash读写的全流程,基于RTD 4.4.2库。内容涵盖环境搭建、外设配置、Flash操作实战代码及高级应用场景,特别针对LLD驱动和FLS存储操作中的常见问题提供了解决方案,帮助开发者快速掌握嵌入式Flash存储技术。

weixin_28684757的博客 255

【oracle笔记】配置侦听器的安全性,控制数据库的访问,外部过程

给监听器listener设置密码,主要是为了防止非管理员用户或远程用户恶意停止监听器

1097

长上下文技术的底层逻辑:Attention、压缩、缓存与跨页推理

如果把模型的参数视为“固化智能”,动态智能(Dynamic Intelligence)——模型不必依赖训练时的记忆,而是可以随时调用外部信息。这一点正在改变大模型的范式:Prompt 不再是输入,而是“操作系统事件”文档不再是知识,而是“模型的临时记忆”模型不再是一段神经网络,而是一个“具备阅读循环的推理引擎”当我们把上下文从 128K 拉到百万级,我们做的不是扩容,而是让模型第一次拥有阅读、回溯、定位、跨页分析的能力。这是一种新的智能。

aifs2025的博客 997

【oracle笔记】tnsnames.ora详解~~还少点,关于外部过程代理程序的

# tnsnames.ora Network Configuration File: D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora# Generated by Oracle configuration tools

815

非sudo用户如何安全使用Docker:Rootless模式实战指南

Docker Rootless模式是一种基于Linux用户命名空间(userns)的容器运行时安全机制,它通过UID/GID映射、fuse-overlayfs文件系统和slirp4netns网络栈,在不提升权限的前提下实现容器隔离。其核心原理是将容器内root身份映射为宿主机非特权用户,从而规避docker组等价root的安全风险。相比传统root模式,Rootless在权限控制、逃逸防护和多租户隔离方面具备天然优势,适用于CI/CD流水线、Kubernetes边缘节点及受限生产环境。本文聚焦无sudo权限

weixin_30274627的博客 349

基于GELAN模块的YOLOv8改进-C2f结构替换与轻量化与高效涨点优化研究

本文详细探讨了在YOLOv8架构中利用YOLOv9的GELAN模块替换C2f结构的改进方法。轻量化版本在资源受限的场景中具有显著的推理效率提升,适用于边缘设备和移动端应用。高效涨点版本则在检测精度上实现了大幅突破,特别适合高精度要求的任务。实验结果显示,GELAN模块相比原C2f模块,在参数量与计算量间取得了更好的平衡,同时提升了检测性能。此外,本文还展示了结构图、训练代码和部署优化方案,为研究者和开发者提供了实践参考。

博客 1436

【ORACLE】数据加载之外部表的使用

ORACLE数据加载之外部表的使用

Axlsss的博客 2877

第201期 解锁科研效率新高度:Claude 科学技能插件(claude-scientific-skills)深度体验

科研AI助手Claude Scientific Skills开源工具为Claude大模型扩展科学能力,覆盖数据可视化、数学计算、学术格式处理等科研全流程需求。该插件支持LaTeX公式生成、自动化科研图表绘制、学术文档规范校正等功能,让研究人员通过自然语言指令即可完成专业任务。项目开源可定制,支持特定学科需求扩展,目前已托管于GitHub。使用门槛低,只需配置Claude API密钥即可快速启用,帮助科研人员从繁琐技术细节中解放,聚焦核心研究创新。

全网120W+关注AI拉呱,专注人工智能以及科技前沿! 1358

基于oracle_datapump的外部表实现过程

一、创建外部表以及产生dmp文件 1、创建directory,需要有 create any directory权限: CREATE DIRECTORY admin AS '/oracle/admin'; 2、创建外部表: SQL> CREATE  TABLE emp_xt     ORGANIZATION EXTERNAL     (       TYPE ORACLE_DATAPU

nisjlvhudy的专栏 1167

Centos7 yum 报错「Errno 256」No more mirrors to try 解决方法

首先该问题的出现是由于网络的震荡导致,这是重点。(1)将源更换成阿里云的官方源,步骤参考如上(2)同时将zabbix的官方源更换成阿里云里面的zabbix镜像源,因为zabbix官方源根本网络不通,因为国家防火墙的拦截,导致网络不通。这是阿里源的zabbix镜像地址: https://mirrors.aliyun.com/zabbix/zabbix/4.4/rhel/7/修改系统中早期生成的zabbix.repo文件,如下:主要是把baseurl替换成阿里云的zabbix镜像地址即可。

专注基础架构领域 3873

YOLOv5/v7/v8/v9/v10/v11/v12/13目标检测结果解析,超w字精读,IoU、GIoU、DIoU、CIoU、EIoU详细解释,精确率、召回率、AP、mAP与P-R 曲线图深度解析

YOLOv5/v7/v8/v9/v10/v11/v12/13目标检测结果解析,超w字精读,IoU、GIoU、DIoU、CIoU、EIoU详细解释,精确率、召回率、AP、mAP与P-R 曲线图深度解析

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 1412

详解Oracle外部表

外部表概述: Oracle外部表用来存取数据库以外的文本文件(Text File)或ORACLE专属格式文件。 外部表注意事项: a.建立外部表时不会产生段、区、数据块等存储结构,只有与表相关的定义放在数据字典中。 b.外部表仅供查询,不能对外部表的内容进行修改(INSERT、UPDATE、DELETE操作)。 c.不能对外部表建立索引。 d.对外部表不能使用ana...

makai5521的博客 1242

微信小程序 - 详解苹果ios手机请求不到数据访问不了接口,但安卓却可以正常访问。wx.request苹果手机IOS请求失败、安卓可以请求成功(微信小程序上线后苹果手机不能访问接口,网络请求失败排查)

微信小程序上线后,苹果手机请求不到数据,安卓可以,微信小程序,安卓可以调接口,苹果调不了的解决方案,微信小程序:IOS访问不了接口,安卓可以正常访问,微信小程序ios版本连接不了服务器,小程序Android可以请求,ios请求失败wx.request,成功上线的小程序,安卓机可以正常访问使用,苹果微信小程序不执行请求,苹果系统无法加载数据,微信小程序 iOS 网络失败,微信小程序接口请求在ios端报错,苹果手机真机调试微信小程序出现网络请求失败,微信小程序 安卓正常 ios调接口显示网络请求失败,微信小程序

🏆 前端领域优质创作者 4361

ORACLE外部表

应用场景 很多时候,我们的数据源不是ORACLE数据库的数据文件,而是操作系统上的某个文件,那么,我们每次都需要将文件入库后才能通过SQL来访问数据吗?ORACLE外部表使得能够通过SQL语句来访问操作系统文件数据,而不需要将数据入库。 oracle_loader驱动 数据库用户登录linux终端,创建3个目录; /data/etl/external_table/oracle_loader/datafile:用来存放数据文件; /data/etl/external_table/oracle_loader/

qq_33445829的博客 1187

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Oracle的外部表

外部表作用:加载和卸载数据  Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4

soulcq的专栏 4046

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Oracle 外部表

Oracle 外部表 外部表是指不存在于数据库中的表。通过向Oracle 提供描述外部表的元数据,可以把一个操作系统文件当成一个只读的数据库表,就像这...

小麦苗DBA宝典 862

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

oracle外部表的优点,ORACLE外部表总结

外部表介绍ORACLE外部表用来存取数据库以外的文本文件(Text File)或ORACLE专属格式文件。因此,建立外部表时不会产生段、区、数据块等存储结构,只有与表相关的定义放在数据字典中。外部表,顾名思义,存储在数据库外面的表。当存取时才能从ORACLE专属格式文件中取得数据,外部表仅供查询,不能对外部表的内容进行修改(INSERT、UPDATE、DELETE操作)。不能对外部表建立索引。因为...

weixin_31714033的博客 890

oracle 外部表

外部表   外部表介绍 ORACLE外部表用来存取数据库以外的文本文件(Text File)或ORACLE专属格式文件。因此,建立外部表时不会产生段、区、数据块等存储结构,只有与表相关的定义放在数据字典中。外部表,顾名思义,存储在数据库外面的表。当存取时才能从ORACLE专属格式文件中取得数据,外部表仅供查询,不能对外部表的内容进行修改(INSERT、UPDATE、DELETE操作)。不能对...

yigongye 3112

Oracle 创建并使用外部表

⏹Oracle创建并使用外部表

菜鸟记录 1677

oracle 外部表使用详解

外部表,相对于数据库内部表来说的,意思是将操作系统文件作为一个数据库,数据从文件而来。我把它理解成类似指针的东西,告诉用户,这个表的数据是从哪些文件来的。外部表的创建,这里写的比网上其他介绍复杂许多,简单的用法,自行百度,这里只考虑 多文件大数据、每行数据没有分隔符,字段靠截取、外部白导入类型是oracle loader的条件。

Errol的分享空间 9821

外部表笔记 - ORACLE_DATAPUMP驱动

参考文档(11gr2的):https://docs.oracle.com/cd/E11882_01/server.112/e22490/et_dp_driver.htm#SUTIL500 测试环境:RDBMS 19.0.0.0 文档中关于DATAPUMP驱动的外部表的一些说明 Unloading and Loading Data with the ORACLE_DATAPUMP Access...

文档搬运工 1008

oracle创建外部表

oracle db允许以只读的形式查询外部表。外部表可以存储在任何oracle db可以读取的存储设备中,其内容不在db中保存,db只保存external table的metadata,db可以查询(join、sort)external table,可以创建view、synonym,但不可以执行DML语句。创建外部表语法create table ……orginzition external,可以把外

DBA的天空 5422

oracle外部表填充

外部表填充 “外部表”由与操作系统无关的专有格式(即直接路径API)平面文件组成。由于数据是 从Oracle数据库提取并“卸载”到文件中的,因此,数据将以透明方式从Oracle内部表 示法转换为等同的Oracle本机外部表示法(即DPAPI)。 可使用CREATETABLEASSELECT命令填充外部表。创建并填充了外部表之后,就不 能在外部表中添加、更新或删除行了。在外...

viviliving的专栏 458

oracle 外部os授权,外部OS认证的过程

今天看到贴子http://www.itpub.net/thread-1167197-1-3.html我也来试一下外部认证,过程如下:[@more@]server是linux4 U4+oracle10.2.0.11、保证参数remote_os_authent=trueSQL*Plus: Release 10.2.0.1.0 - Production on Fri May 22 14:26:04 20...

weixin_34632164的博客 273

oracle外部表位置,Oracle外部表

可以像对其他表一样,使用SELECT语句查询外部表,但不能对外部表执行DML操作。这是因为它不是以段的形式存在于数据库中,而是以数据字典构造存在,指向外部的操作系统文件。外部表的操作系统文件通过Oracle目录对象定位。1、目录对象Oracle目录是指向物理路径的数据库对象。任何用户要创建目录,必须获得CREATEDIRECTORY权限。目录创建后,必须授予使用目录的Oracle数据库用户读写目录...

weixin_42305163的博客 557
上一篇: 控制对数据库的访问
下一篇: linux fedora下制作 xpm图片
杰克牌辣酱
博客等级 码龄18年 26粉丝 141原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值