技术 PL/SQL 提高文件操作功能 作者:Steven Feuerstein Oracle9i第2版中的UNT_FILE提高了文件输入/输出(I/O)功能。 有些人可能会说你可以在Oracle数据库中包含和表示整个世界,甚至是整个宇宙。这或许是真的,但我们中仍有一些人希望能够从我们的PL/SQL程序内部处理操作系统(OS)文件。有了这个愿望,开发人员在很长时间内就同UTL_FILE包之间有了一种爱憎交加的关系。 相关链接 Oracle技术网站(OTN)上关于UTL_FILE的示例 ot
在PL/SQL中,UTL_FILE包提供了文本文件输入和输出互功能。也就是说我们可以通过该包实现从操作系统级别来实现文件读取输入或者是写入到操作系统文件。通过该包也可以将其他系统的数据加载到数据库中。如加载web服务器日志,用户登录数据库日志乃至Oracle日志文件等等。本文主要描述了UTL_FILE的功能以及通过实例演示并理解这个包下相关过程函数的用法。
Oracle字符集是AL32UTF8,查询表中的非英文字符显示正常,但是用utl_file写到CSV文件用Excel打开是乱码。
在平时的数据导出中使用exp/expdp能够满足绝大部分的数据导出任务。如果有一些表的数据不多,但是查询条件要复杂一些,使用exp/expdp就很吃力了。 或者在和外部系统的交互中,使用xml或者文本文件是一个很兼容的选择,这个时候使用exp/expdp也满足不了要求。 这个时候可以考虑使用utl_file的提供的一些功能来做选择性的数据导出。 先来使用utl_file做一个简单的例子,输出两行文本内容到output.txt文件中。一行Hello,一行hello word declare v_fileha
作者介绍 崔华 网名 dbsnake Oracle ACE Director,ACOUG 核心专家 UTL_FILE包可以用来读写操作系统上的文本文件,UTL_FILE提供了在客户端(FORM等等
针对这个需求,有多种实现方式,例如spool、utl_file、PLSQL Developer导出、Java等语言直连数据库操作,没有最佳方案,只有最合适的。
SQL*Loader 是用于将外部数据进行批量高速加载的数据库的最高效工具,可用于将多种平面格式文件加载到Oracle数据库。SQL*Loader支持传统路径模式以及直接路径这两种加载模式
cx_Oracle 是一个用户访问 Oracle 数据库的 Python 扩展模块。它符合Python数据库API 2.0规范,并增加了相当多的内容和几个排除项。
由于RDS(Oracle)不直接支持SSH,FTP(基于安全因素吧).所以原有系统expdp或exp出来的dmp文件,不能直接导入到RDS中。官方文档里建议通过networklink或者dblink的方式 从原有数据库迁移到RDS,考虑到网络和安全因素,此方法暂被忽略掉。
可以利用UTL_FILE包,但是,在此之前,要注意设置好UTL_FILE_DIR初始化参数。
Oracle Database 10g 提供了一个新的工具:(AWR:Automatic Workload Repository) .
首先为了快速创建表数据用了CONNECT BY方法,再次为了把表存储搞大,每个字段长度都是1000字节,一条记录平均4000字节左右,数据库的db_block_size=8192字节,由于block还包括其他信息,所以一个块只能存储一条记录,10万记录大概在800M左右,50万记录为4G
为了更好的管理CDB及其PDB中的权限,12c推出一项新功能 – PDB锁定配置文件 ( PDB Lockdown Profile),用于控制连接到PDB用户的可用操作。比如,禁止执行alter system。
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wzy0623/article/details/53894921
select ‘bgdrac’ database,t11.username,t11.default_tablespace tablespace_name,segment_size_in_GB,datafile_size_in_gb,tablespace_free_size_in_gb from (select username,default_tablespace from dba_users) t11 left join ( select nvl(t1.tablespace_name,t2.tablespace_name) tablespace_name,t1.size_in_GB datafile_size_in_GB,t2.size_in_GB segment_size_in_GB,t1.size_in_GB-t2.size_in_GB tablespace_free_size_in_GB from (select tablespace_name,sum(bytes)/1024/1024/1024 size_in_GB from dba_data_files group by tablespace_name) t1 full join (select tablespace_name,sum(bytes)/1024/1024/1024 size_in_GB from dba_segments group by tablespace_name) t2 on t2.tablespace_name=t1.tablespace_name) t22 on t22.tablespace_name=t11.default_tablespace where t11.default_tablespace<>’zlbfxt’;
如果一个大表要抽取数据导出成csv文件,我们有什么策略,如何改进。 一、问题背景 今天开发的同学找到我,他们需要做一个数据统计分析,需要我提供一些支持,把一个统计库中的大表数据导出成文本提供给他们
采用命令“DBMS_OUTPUT.ENABLE(20000);”,另外,如果DBMS_OUTPUT的信息不能显示,那么需要设置SET SERVEROUTPUT ON。
Oracle就是这么牛,从外部文件导入到Oracle中有N种方法,想把Oracle的数据导出成通用文件的方法却不多,梳理下来大致有三种办法:
本系列文章主要针对ETL大数据处理这一典型场景,基于python语言使用Oracle、aws、Elastic search 、Spark 相关组件进行一些基本的数据导入导出实战,如:
SQL> alter system set nls_date_format='yyyy-mm-dd hh24:mi:ss' scope=spfile;
PG16开源的版本发布有一段日子了,作为著名的开源关系型数据库管理系统,最新的版本,在数据管理,数据复制,系统监控和性能优化等都在达到新的高度,PG的企业版本,EDB ,作为PostgreSQL 开源数据库的主要代码的提供者,向企业提供更优秀的商业版本的PG,对于最新的PG16 ,EDB 推出了 PG16.1 的数据库版本,也是最新的商业PG的数据库产品。这里EDB 一直在推动开源的数据库PostgreSQL的发展,并作为这个领域的头号贡献者,这里我们看看最新的PG16.1 的企业版本有什么新的功能。
起因是在某红队项目中,获取到Oracle数据库密码后,利用Github上的某数据库利用工具连接后,利用时执行如 tasklist /svc 、net user 等命令时出现 ORA-24345: 出现截断或空读取错误,且文件管理功能出现问题,无法上传webshell,因此萌生了重写利用工具的想法。
预告: 下一次培训主要面向DBA, 讲一下ora工具的用法与用途,大概需要一天时间.
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wzy0623/article/details/53895301
Lunatic 整理 1. 删除表的注意事项 在删除一个表中的全部数据时,须使用TRUNCATE TABLE 表名;因为用DROP TABLE,DELETE * FROM 表名时,TABLESPACE表空间该表的占用空间并未释放,反复几次DROP,DELETE操作后,该TABLESPACE上百兆的空间就被耗光了。 2.having 子句的用法 having 子句对 group by 子句所确定的行组进行控制,having 子句条件中只允许涉及常量,聚组函数或group by 子句
功能:生成某一用户下所有数据表数据的insert语句,放入d:\insert.sql文件。
在上一章介绍expdp/impdp时曾使用过DIRECTORY这个概念,下面再简单说明下DIRECTORY的点点滴滴。
Handsontable 是一个网页版的类 excel 工具,其强大的地方已经不言而喻了。我们来看看官网上的几个例子: 漂亮的布局:
PGTune可以根据给定硬件配置的最大性能计算PostgreSQL配置。对于初学者来说可以快速地来配置数据库参数。但它不是PostgreSQL优化设置的灵丹妙药。许多设置不仅取决于硬件配置,还取决于数据库的大小、客户端的数量和查询的复杂性。只有考虑到所有这些参数,才能对数据库进行最佳配置。
在之前穿越边界的姿势文章中介绍了几种穿透内网的方式,今天的这种方式再之前的文章里没有提及,所以今天来重点介绍使用dns协议穿透内网。
BLOB类型的数据存储的是二进制文件,例如pdf、jpg或mp4视频格式文件等。对于BLOB类型的数据,可以使用图形化界面软件(例如PLSQL Developer或Oracle SQL Developer)来下载这些二进制数据,也可以使用PL/SQL程序来对这些数据进行读写。
1、若Oracle数据库字符集为ZHS16GBK,则必须同时满足如下2个条件,才能避免生僻字乱码:
首先需要对Oracle和PostgreSQL的SQL都比较熟悉。对其理解的越详细就越具有优势,本文帮助读者迅速理解这两类SQL的区别是什么。
分析Oracle数据库日志文件(1) 一、如何分析即LogMiner解释 从目前来看,分析Oracle日志的唯一方法就是使用Oracle公司提供的LogMiner来进行, Oracle数据库的所有更改都记录在日志中,但是原始的日志信息我们根本无法看懂,而LogMiner就是让我们看懂日志信息的工具。从这一点上看,它和tkprof差不多,一个是用来分析日志信息,一个则是格式化跟踪文件。通过对日志的分析我们可以实现下面的目的: 1、查明数据库的逻辑更改; 2、侦察并更正用户的误操作; 3、执行事后审计;
在很多的数据处理任务中,我们经常会用到数据同步的需求,尤其是异构数据库同步,当然目前世面上有很多的数据同步工具,开源和商业的都有很多,当然Oracle自身也可以实现数据的实时或者异步同步。这里我们示例一下通过配置 Oracle 提供的 LogMiner 免费工具,进行数据变更的捕获。配置完成后,动手能力强的小伙伴,就可以自己写个代码,解析相应的变更,然后可以做成同构或者异构数据库的同步工具。
最近在ESB项目中,客户在各个系统之间的服务调用大多都是在oracle存储过程中进行的,本文就oracle存储过程调用web service来进行说明。其他主流数据库,比如mysql和sql service,调用web service的方法这里就不做介绍了,本文主要用来介绍oracle存储过程调用Web Service的方法。
get_host_address 函数返回指定主机名的IP地址。 SQL> SELECT UTL_INADDR.get_host_address('bart') FROM dual; UTL_INADDR.GET_HOST_ADDRESS('BART') -------------------------------------------------------------------------------- 192.168.2.4 SQL> 如果指定的主机名为NULL或省略,则返回数据库服务器
当我们对一个数据库进行注入时,无回显,且无法进行时间注入,那么就可以利用一个通道,把查询到数据通过通道带出去,这里的通道包括:http请求、DNS解析、SMB服务等将数据带出。
对DBA而言,尽管在os级别下发送邮件是轻而易举的事情,然而很多时候我们也需要在PL/SQL中来发送邮件,比如监控job的执行状况等。本文根据网友(源作者未考证)的代码将其改装并封装到了package,感谢这位网友的无私奉献。文章首先给出演示调用该包发送邮件的情形后面给出了完整的代码。经测试Oracle 10g,Oracle 11g下均可用。关于os下发送邮件可参考:不可或缺的 sendEmail
上图(b)中可以看出,当Ui > UTH,U0 = +Uz;当Ui < UTL,U0 = -Uz。上图的ΔUT(=UTH-UTL)就是Hysteresis。
软件下载 Oracle Big Data Connectors:ODCH 下载地址: http://www.oracle.com/technetwork/bdc/big-data-connectors
在Oracle PL/SQL中使用UTL_SMTP、UTL_MAIL、UTL_HTTP等包进行发邮件等操作,需要配置Oracle Network ACLs(Access Control List)。
Oracle和MySQL数据库语法大致相同,结构不太相同,对于“数据库”这个概念而言,Oracle采用了”表空间“的定义。数据文件就是由多个表空间组成的,这些数据文件和相关文件形成一个完整的数据库。当数据库创建时,Oracle 会默认创建五个表空间:SYSTEM、SYSAUX、USERS、UNDOTBS、TEMP。
Oracle通过该包允许使用几个PL/SQL API(例如,UTL_TCP、UTL_SMTP、UTL_MAIL、UTL_HTTP和UTL_INADDR)访问外部网络服务。需要进行权限授权才可以使用,比如需要通过oracle发送邮件。若安装了XDB组件,则DBMS_NETWORK_ACL_ADMIN会自动安装。若安装了XDB组件,但是DBMS_NETWORK_ACL_ADMIN不可用,则可以单独执行如下的脚本进行安装:
在典型的机器学习和深度学习项目中,我们通常从定义问题陈述开始,然后是数据收集和准备(数据预处理)和模型构建(模型训练),对吧?但是,最后,我们希望我们的模型能够提供给最终用户,以便他们能够利用它。模型部署是任何机器学习项目的最后阶段之一,可能有点棘手。如何将机器学习模型传递给客户/利益相关者?模型的部署大致分为以下三个步骤:
Oracle提供了utlrp.sql和utlprp.sql脚本来重新编译数据库中的所有无效对象,
. . exporting table BJ_AFFILIATES 37 rows exported
在Oracle Database 12.2 中引入了lockdown profile的新特性,可以用于限制PDB中的某些操作,增强某些操作的安全性。 PDB Lockdown Profiles to Restrict Operations on PDBs Starting with this release, in a multitenant environment, you can use PDB lockdown profiles to restrict functionality availab
领取专属 10元无门槛券
手把手带您无忧上云