Oracle PL/SQL技巧
文章平均质量分 91
samt007
活在Oracle EBS中。
展开
-
Oracle数据库优化之内存表的使用说明
集控项目问题:由于ERP系统的Oracle数据库产生的日志量过多(就一个表在5.13号凌晨1个小时内就有2.6个亿的更新日志),导致罗马平台同步数据采集超时。所以需要对这块做专题优化。修改逻辑:通过分析对应的程序逻辑,发现INSERT日志和UPDATE日志都是针对XYG_ALFR_INV_ALLO_GT和XYG_ALFR_CUST_BALANCE_TEMP表。而这2个表是GLOBAL TEMP的临时表。要减少日志的产生,可以直接用Oracle内存表的逻辑重构修改。原创 2022-01-28 15:05:55 · 2431 阅读 · 0 评论 -
关于Oracle Toad功能的Execute As Script执行逻辑(方法原理)
---这个是我注册表格的时候碰到一个奇怪的问题以及原因还有解决办法。我先用AD_DD.REGISTER_TABLE注册了表格XYG_MANUFACTURE_NEED接着,用Toad的Execute As Script想批量注册表格行的时候,老是报一个错误:EXECUTE AD_DD.REGISTER_COLUMN('XYG','XYG_MANUFACTURE_NEED','NEED_I原创 2014-10-08 09:13:47 · 3715 阅读 · 0 评论 -
技术分享:Oracle PLSQL读取(解析)Excel文档
Introduction介绍Excel文档的数据如何读取到Oracle数据库一直是值得深究的问题。目前相信大部分程序员都是直接用工具将Excel的数据读取到Oracle数据库的。例如Toad,PL/SQL Developer的Excel数据导入功能。也有一部分程序开发的是:先将Excel转换为一个逗号分隔符等的文本文件(CSV等),然后写代码通过特定的符号(TAB符号或原创 2015-05-14 07:35:48 · 5647 阅读 · 0 评论 -
【玩转Excel】Oracle PLSQL处理生成XLSX文件
INTRODUCTION介绍 之前发表了一个研究心得(当然是站在别人的肩膀上的),在Oracle中直接用PL/SQL解析并读取Excel的内容。很多人都感兴趣,按照我的写法也可以成功实现了。不过,有很多朋友提出了另外一个要求:读取Excel是可以了,那是否可以在Oracle数据库端直接生成Excel文件?二进制的文件。 开始我对这个问题是不怎么在意的。因为,在Oracle数原创 2015-07-06 20:14:05 · 7412 阅读 · 0 评论 -
本地动态SQL(Open for等)如何获取SQL的定义属性,包括栏位名称和数据类型
举个例子:declare cursor tcursor is with temp_tab as (select date'2015-7-10' date_col,'TEST TYPE' varchar_col,to_number('158') number_col from dual union all select d原创 2015-08-06 21:04:56 · 1432 阅读 · 0 评论 -
Oracle数据库疑问:函数出现no_data_found不报异常
今天做一个功能的时候,发现Oracle数据库的一个令人很奇怪的点:在sql里面调用的函数,如果函数体出现no_data_found的报错居然不会显式报错!而是终止执行,不报错,并返回null值。真是太费解了!不信的可以自己试试。我确实是今天才发现这个“问题”。以前写函数,我一定做异常处理的。备注:经过测试得知,别的错误,例如TOO_MANY_ROWS和DUP_VAL_ON_INDEX,原创 2016-10-25 15:52:43 · 3745 阅读 · 0 评论 -
Oracle执行计划基础详解(转载)
Oracle执行计划详解简介: 本文全面详细介绍oracle执行计划的相关的概念,访问数据的存取方法,表之间的连接等内容。 并有总结和概述,便于理解与记忆!目录一.相关的概念Rowid的概念Recursive Sql概念Predicate(谓词)DRiving Table(驱动表)Probed Table(被探查表)组合索引(concatenated index)可转载 2017-02-14 22:16:18 · 396 阅读 · 0 评论 -
Oracle数据库调优之-SQL执行计划粗解
ORACLE数据库调优:执行计划粗解 前言 本文主要是讲解关于Oracle SQL的执行计划的各个方面的知识,包括如何计算Cost的逻辑等,适合没深入了解执行计划的程序开发人员阅读。 对于DBA们,SQL的执行计划好像本来就是必修课之一吧~(主要是最近调优数据库,分析性能瓶颈之后,得出的一些经验总结。特意整理以及分享一下,希望对执行计划这方面还未深入了解的开发人员有帮助!) 数据库调优,其原创 2017-04-07 14:08:03 · 1184 阅读 · 0 评论 -
性能调优分析之:Oracle SQL执行计划报告生成器
Oracle SQL执行计划分析器功能的创建3步曲: 1 首先,编译XYG_ALD_SESS_PKG的Package头。 (XYG_ALD_SESS_PKG.sql) 2 接着要建立好下面的4个视图对象。因为XYG_ALD_SESS_PKG包体会用到。(View Create Script v1.0.sql) 如果出现没权限访问GV$SQL_PLAN_MONITOR这些对象,请先用sys原创 2017-04-07 13:55:14 · 3268 阅读 · 0 评论 -
关于在PLSQL中实现DEBUG调试功能的方法
前言 一个健康的PLSQL,应该都带有一套完整的调试逻辑。特别是那些功能很复杂的PLSQL,就更加有必要具备调试功能了。否则,当PLSQL处理数据出现问题的时候,分析(处理)起来会相当的困难。 举个例子,Oracle EBS标准功能的PLSQL(特别是API),如果Oracle没有自带调试功能给我们做看每一步骤的调试结果,单单通过看代码模拟其执行逻辑来找问题,基本上是不可能处理问题的! 当然,原创 2017-04-07 14:27:52 · 6512 阅读 · 0 评论 -
Oracle EBS API使用说明
API是Oracle EBS的一个很重要的部分,是Oracle EBS标准程序与我们客制的程序或者外围系统的一个桥梁。我们经常遇到一个问题:对于某个功能,Oracle是否提供标准的API给我们使用?如果有,则可以方便批量导入新的数据或者批量处理业务数据。 对于常用的EBS API说明以及相关的使用,黄建华的一篇文档已经说明得很到位。但是这也是常用的API开发说明而已。对于非常用的,原创 2014-01-11 09:34:21 · 3363 阅读 · 0 评论 -
关于Oracle EBS R12 表格XLA_TRANSACTION_ENTITIES 的安全策略(VPD)组研究
安全策略VPD技术是啥这里就不多说了,网上很多资料,说明很清楚的。这里说的是另外一个比较困惑的点:对于一个(OBJECT_OWNER.)对象,如果同时存在多个安全策略组的设定,如何确定什么时候抓哪一个安全策略组的设定(WHERE CONDITION)?例如,查询安全策略:---安全策略:SELECT * FROM dba_policies DBAWHERE dba.o原创 2013-11-07 09:19:04 · 5669 阅读 · 0 评论 -
如何跟踪EBS客户端的IP地址
分享一个文档,在8月份编写的。主要是如何在EBS中跟踪客户端的IP地址。为什么要跟踪?我个人认为还是有一定的需要的。例如,当一个数据被异常修改的时候(并且对应的EBS用户同时被多个人使用的时候),因为一般记录都有LAST_UPDATE_LOGIN,根据这个最后更新的登录ID,找到对应的电脑,那基本可以定位是谁做的事情。另外,也可以比较方便监控目前系统的使用人对应的电脑IP。目前这个跟踪原创 2013-11-05 08:41:48 · 2310 阅读 · 0 评论 -
用PL/SQL判断一个FTP服务器上的文件是否存在
小技巧分享了。最近遇到这个问题,找了一下,原来用utl_file.fgetattr包可以很方便实现检测,应该也是最有效率的。---用fgetattr获取DECLARE L_fexists BOOLEAN := FALSE; L_EXISTS_FILE VARCHAR2(50); L_file_length NUMBER; L_block_s原创 2012-10-17 12:35:34 · 1430 阅读 · 0 评论 -
在EBS Form中实现强大的排序效果
EBS Form中实现强大的排序效果所有的Item都可以自由排序,组合排序的效果整理by sam.t in 2012.9.27E-mail:samt007@163.com 前言:在EBS的Form中,排序功能一直是不够人性化。强如文件夹的开发的Form,最多也只可以实现Top3位Item的排序。如果您想实现每个Item都可以自由排序,或者灰常强大的自由组合排序的效果,那标准原创 2012-09-27 14:56:25 · 5406 阅读 · 0 评论 -
Oracle”文本”报表输出
Oracle”文本”报表输出Sam.T2012-12-12现象:一个普通的XML或者PL/SQL过程导出的Oracle报表,用Excel打开,第一次存档的时候,可能很大(之前碰到过,一财务的MM用XML报表导2年的数据,文档体积超过50M,而她们的电脑配置低,文档没法打开。尴尬。);但是用Excel另存为一个新的Excel文档之后,容量会小很多。为什么?就是因为,通常我们看到的原创 2012-12-12 17:39:58 · 3414 阅读 · 2 评论 -
自动处理【库存物料交易MMT接口表】程序
这个程序,根据输入的参数可以自动处理MTL_TRANSACTIONS_INTERFACE表或者MTL_MATERIAL_TRANSACTIONS_TEMP表。处理有2中方式:1 自动提交请求Inventory transaction worker处理。处理对应的TRANSACTION_HEADER_ID的数据。只是负责提请求处理接口表数据,后期是否成功不是它可以知道的。2 立刻过账。如原创 2012-12-27 16:24:55 · 4814 阅读 · 0 评论 -
Form客制化_快速导出功能_开发
客制化_快速导出功能_开发本教程主要是介绍Form客制化_快速导出功能_开发的相关功能,包含如下几个部分:l 功能优势和缺点l 开发逻辑以及使用约束l 相关设定以及说明l 开发实例l 测试/预览导出效果 功能优势和缺点该功能” Form客制化_快速导出功能”是和标准功能的导出功能很类似的。都是对数据块的内容做批量导出。一、相对于标准的导出功原创 2013-02-04 17:39:34 · 1504 阅读 · 0 评论 -
自动处理【任务单工序移动接口表】程序
这个程序,根据输入的参数可以自动处理WIP_MOVE_TXN_INTERFACE表。虽然一般都是排一个“WIP 移动事务处理管理器”定期处理,但是个人认为这样子处理还是有一定的滞后性。用户想操作完毕立刻看到效果,但是老要等上几分钟。所以专门开发了这个自动处理的程序。也是蛮实用。逻辑也很简单,就是自动提交一个“WIP 移动事务处理工作流程”处理对应GROUP_ID的数据。代码也共享出原创 2013-02-04 17:46:37 · 2013 阅读 · 0 评论 -
汉字转拼音的Oracle函数
前言:最近处理一个特殊的问题,需要用到汉字自动转换拼音的功能。解决:网上找了不少资料,都是有所缺陷,而且也好像很绕。其实是一个很简单的东东。后来还是自己写了一个函数获取。这是一个比较简单的汉字转拼音的Oracle函数写法。原理是,先将汉字对应的拼音存入一个表格。然后对这个表格对应的存在的汉字找出其拼音,然后输出。步骤如下:----建立汉字拼音对照表_表格。CREATE原创 2013-03-21 10:56:17 · 9232 阅读 · 0 评论 -
编号产生的比较经典的例子
主要是用上一个编码控制的表格。每次要新增一个编号的时候,必须要锁住对应的编码控制表,实现并发控制。当然,锁表肯定会导致等待的死锁,所以这里用上nowait。当尝试次数超过30次,就报错。 FUNCTION GET_ESLIP_NUM( ORGANIZATION_ID NUMBER ,PERIOD VARCH原创 2013-09-25 10:45:27 · 975 阅读 · 0 评论 -
一条SQL实现数据分摊
这个也是比较经典的数据分摊的问题。举个例子:例如有一个总金额:5000按照一定的顺序分摊给一堆明细记录:RN DEPTNO EMPNO SAL1 20 7369 8002 20 7566 29753 20 778原创 2013-10-17 12:48:20 · 7702 阅读 · 0 评论 -
Oracle数据分摊问题解析
上一段时间总结的,希望对需要写这种程序的Programer有用:多说一句,写这类型的程序思路一定要清晰,否则可能会有问题,绕一大圈不说,还可能会有bug。--------- 经常会碰到,由于业务需要,需要将某种汇总的数据按照一定的原则分摊给一堆数据。其实,如果逻辑清晰的话,这类型的程序还是比较好些的。本文重点是如果用简单的程序实现这种效果,而且不容易分摊分错。所原创 2012-09-20 09:10:29 · 1251 阅读 · 0 评论