- 博客(54)
- 收藏
- 关注
原创 Oracle Form - App_Query的简单使用
id_column、name_column都是外键表的字段名称,前者是子查询SELECT的字段,后者则在子查询的WHERE条件里匹配由non_db_field其值生成的查询条件。non_db_field则是数据块的非数据库项目,它的值(即NAME_IN(block_name.non_db_field))用于生成子查询里的查询条件。此时FND_LOOKUP_TYPES.APPLICATION_NAME里的值是 %应付%需要注意的是db_field是被查询块block_name的表(数据源)的。
2024-12-03 16:05:44
554
原创 Oracle SQL - CONNECT BY语句Where条件中不能使用OR?[已解决]
难道递归查询中不可以使用OR来关联表吗?究其原因,在递归查询的Where条件中,最先执行的是表关联条件,必须是同时出现两个表的表达式
2024-06-27 17:30:49
426
原创 PLSQL - 一个IR/DR权限程序包套娃带来的问题
CUX受到赋权,可以调用IRDRIR包(main),但从打印的结果来看,在IRDRIR包中,竟然以CUX的身份成功调用了DRIR包,进而切换到了APPS上下文,最终转到了IR包,没有发生任何报错
2023-08-24 14:42:00
297
原创 PLSQL - FORALL+MERGE的使用(11g)
另外值得一提的是,11g取消了FORALL使用UPDATE语句时,SET部分不能引用数组索引的限制。,Oracle 11g引入FORALL结合MERGE语句的使用方法。
2023-05-09 11:27:20
252
原创 WebADI - 参数的使用
可以理解为Definition是实际的参数,但它是独立的,也是可供共享的,最终它将使用在哪个WEBADI的下载页面,这要看谁的参数列表里引用了它。在定义集成器的上传模板时,系统实际上也会创建一个对应的参数列表,代码一般为XXX_UPL,所以下载的参数列表建议保持一致,命名为XXX_DPL,本例取名为BHSC_EMP_ADI_DPL。开发过程中我发现,尽管参数定义为非必需的,但对于值列表的情况,页面上总会默认选择第一个值,且列表中并没有空白选项,也不能删除参数的值,这将导致非必需参数也变成了必需的。
2023-02-17 16:23:12
804
原创 PLSQL - 利用Object Type实现Greatest/Least忽略空值计算
在使用的时候,对象被实例化出来的同时,其greatest和least属性便已计算好,并可在游标中直接引用了。的文章,最近又想到可以用对象类型来实现,不算成熟,抛砖引玉。
2023-02-15 17:36:27
350
原创 Oracle Form - 日历组件点不开(已解决)
又在检查调用calendar_rest_all的代码中发现APPDAYPK/calendar_show中有如下代码(calendar_show是calendar.show调用的过程)点击该字段值列表,没有弹出日历时,通过诊断/检查看到global.frd_debug内容为Entering calendar.calendar_reset_all。有某表单界面,在新建记录时,其中一个日期字段点击值列表不能弹出日历,且会叮咚响,但是左下角没有任何错误信息显示;如果在这个字段输入点什么内容,就能点开日历。
2023-01-13 12:29:53
233
转载 Oracle Kill Session 方法详细说明(转)
与要求会话自行终止的KILL SESSION命令不同,DISCONNECT SESSION命令会终止专用服务器进程(或使用共享服务器时的虚拟电路),这相当于从操作系统中终止服务器进程。Oracle 数据库中经常会出现session阻塞等导致CPU使用率异常的情况,而一个快速解决这个故障的方法就是kill session,可以直接kill 所有session,也可以使用hanganalyze 工具找到具体的session 在kill。如果省略SQL_ID,则假定指的是当前在指定会话中运行的SQL。
2022-12-31 16:02:29
6592
原创 EBS - FA资产剩余寿命计算脚本
参考自表单FAXASSET/Program Unit:INQUIRY_BOOKS.post_query。2、直接查资产在当前的剩余寿命。1、指定截止到某个期间。
2022-12-28 16:36:30
415
原创 Oracle Form - 文件夹数据块点击排序后只剩一行显示(已解决)
另外,我又在app_folder.event('PRE-BLOCK')中发现,它调用的app_folder_get_instance_values过程,会用system.trigger_name去匹配出folder_master_props.pending_where_clause的内容存放至app_folder.pending_where_clause。2、在app_folder.event('POST-QUERY')中,会判断当它是FALSE时,执行app_folder_ext_whr_cls。
2022-10-05 02:58:47
1031
原创 PLSQL - 递归子查询RSF打破CONNECT BY LOOP限制
简单来说,这是一个未指示父子关系的放飞自我的递归,它只对LEVEL进行了一下筛选首先YUSUF是第一层,然后全表作为他的下一层(LEVEL=2),进行到这里要求RNAME的+号数量≥1,从而QINJINGBAO(角色是SON)被淘汰;下面第二层的各行分别来到第三层,依然是全表作为遴选对象,这里要求RNAME的+号数量≥2,唯有TURNER可以入选;这是一种很聪明的存储方法,但有时我们却又可能需要拆出每个人的所有角色以便匹配,也就是说要以员工+单角色名称的维度来组织数据,如下图。...
2022-07-15 22:41:38
535
转载 Oracle Developer10G 安装使用问题及解决方案
Form Builder把中文版改为英文版方法:在注册表中HKEY_LOCAL_MACHINE—>SOFTWARE—>ORACLE—>KEY_DevSuiteHome把NLS_LANG中的键值由SIMPLIFIED CHINESE_CHINA.ZHS16GBK改为AMERICAN_AMERICA.ZHS16GBKForm Builder配置fmb pll文件寻址路径:在注册表中HKEY_LOCAL_MACHINE—>SOFTWARE—>ORACLE—>
2022-03-22 22:37:34
884
原创 PLSQL - 自定义函数实现Greatest/Least忽略空值计算
说明Greatest和Least是Oracle的两个内置函数,可以从一众值中计算出最大或最小值,非常方便。但是它们有一个使用起来不太方便的地方:只要列表中含有一个NULL,计算结果就是NULL了。如果要比较的值比较少,尚可做一些加工来避免NULL值的影响,比如greatest(coalesce(col1, col2, col3), coalesce(col2, col3, col1), coalesce(col3, col1, col2))但如果是值很多的
2022-02-17 17:08:17
2055
原创 PLSQL - 一例阿拉伯数字转中文大写程序
程序create or replace function cux_num2chn(p_number number, p_round number := null) return varchar2 is /* Description: Convert a number into Chinese string. The number should between 1e21 and -1e2
2022-02-16 08:46:39
679
原创 Oracle Form - 另一种全选/全不选功能设计
功能设计开发步骤列表中的复选框:数据块中增加ITEM,子类信息CHECKBOX,选中时值Y,未选中值N(本例中为DETAILS.SELECTED) 全选/全不选框:一个非数据库项,子类信息CHECKBOX,选中时值Y,未选中值N(本例中为CONTROL.SELECT_ALL) 列表数据块增加块级的用户命名触发器SELECT_ALL :DETAILS.SELECTED := :CONTROL.SELECT_ALL; CONTROL.SELECT_ALL触发器WHEN-CHECKBOX-.
2022-01-17 15:41:23
563
原创 Oracle Form - 一种全选/全不选功能设计
功能设计设计思路全选/全不选框要实现的是:1、自己被勾选,就将列表全部勾选;2、自己被取消,就将列表全部取消列表单选框要实现的是:自己被取消,互动取消全选框开发实现列表中的复选框:数据块中增加ITEM,子类信息CHECKBOX,选中时值Y,未选中值N(本例中为DETAILS.SELECTED) 全选/全不选框:一个非数据库项,子类信息CHECKBOX,选中时值Y,未选中值N(本例中为CONTROL.SELECT_ALL) 增加一个参数ALL_SELECTED,初始值...
2022-01-15 18:55:22
920
原创 PLSQL - 一次聚合函数翻车的教训
最近在项目上竟然因为聚合函数翻了车,引人深思,发人深省。事故再现在程序包中一个地方需要从某表中求一个数量的和,实际开发过程是把写好的 DEMO 粘贴进来,加了 WHERE 条件,但是懒得删去 GROUP BY,就像下面这样SELECT SUM(t.quantity) INTO l_quantity_s FROM demo_t t WHERE t.item_id = p_item_id GROUP BY t.item_id结果就是在实际运行中报了错误 ORA-01403: 未找到任
2022-01-06 10:26:14
775
2
原创 PLSQL - 日期操纵函数模板IW/WW/W之区别
日期处理函数pattern中IW、WW、W这三个元素都能表示周,但是他们有着具体的区别:IW是以ISO 8601标准规定的周制,每个日历星期从星期一开始,星期日为第7天。以1月4日所在周为当年第一周WW是全年计数的周,以1月1日至7日为当年第一周,此后每七天记为一周W是全月计数的周,以1日至7日为当月第一周,此后每七天记为一周例1:今年1月4日是恰是周一,故以ISO 8601标准,1月前三天划归上年第53周;不过这只体现在周数上,当使用trunc函数截断至周时,则仍以日历周的起止规则行.
2021-11-05 20:53:37
3522
原创 PLSQL - 理解聚合函数的分析模式
聚合函数是我们所熟知的非常好用的数据统计函数,例如求和、求取最值等。我们已经知道聚合计算是基于数据分组使用的,简单来说数据分组就是考察表中行的若干特征,特征一致的行分到一个组中。另外从数据分组的原理我们又发现,分组后的数据仅保留了被考察的特征列(如果有的话)以及被聚合的列,如此求取聚合值后,返回结果的行数就可能少于原始数据集的行数。分析函数又称窗口函数,但实际上分析函数一般含有三个要素:分区子句、排序子句和窗口子句。这里的分区和分组的概念十分相像,同样是将若干特征一致的行分到一个分区中。但与 GROUP
2021-05-27 18:28:14
748
原创 PLSQL - 一次关于SYS_CONTEXT函数、IR函数与视图的尝试
最近在学习有关AUTHID的内容时,发现Oracle多份官方文档中强调的一项比较有趣的规定Oracle Database PL/SQL Language Reference 11g Release 2, P8-49Oracle Database SQL Language Reference 11g Release 2, P5-282这个规定的中心思想就是:1)如果在视图中调用了IR权限的存储过程,上下文CURRENT_USER总是视图的定义者,而非调用者;2)如果视图中直接调用了..
2020-10-16 16:42:20
271
原创 EBS - API创建客户联系人、联系方式和联系人职责
关于联系人和联系方式表结构的介绍,请参阅联系人数据结构和联系方式数据结构一、创建联系人DECLARE x_person_party_id NUMBER; x_person_party_number NUMBER; x_org_contact_id NUMBER; x_party_rel_id NUMB...
2020-04-28 15:53:50
2511
1
原创 EBS - API创建客户、地点和业务目的
一、创建客户(组织+账户)DECLARE x_cust_account_id NUMBER; x_account_number NUMBER; x_party_id NUMBER; x_party_number NUMBER; x_profile_id NUMBER; x_return_status VARCHAR2(5); x...
2020-04-26 12:34:24
1849
原创 Oracle AR - 客户联系方式表结构简述
EBS中为客户创建的联系方式均存储在HZ_CONTACT_POINTS表中,该表以OWNER_TABLE_NAME区分联系方式是属于地点层的还是联系人层的:联系方式层次 OWNER_TABLE_NAME OWNER_TABLE_ID 联系人层 'HZ_PARTIES' 关联联系人与客户账户关系(PARTY_RELATIONSHIP)在HZ_PARTIES的PARTY...
2020-04-25 17:38:01
1767
原创 Oracle AR - 客户与联系人表关系AR_CONTACTS_V
(作图丑陋 请多包涵)EBS中在客户的账户层和地点层均可创建联系人,地点层上的联系人在HZ_CUST_ACCOUNT_ROLES表中对应记录的CUST_ACCOUNT_ID和CUST_ACCT_SITE_ID分别存储客户的账户ID和所属的客户地点ID,账户层上的联系人对应记录则CUST_ACCT_SITE_ID字段为空。一个联系人可以关系到HZ_RELATIONSHIPS表中的一对记...
2020-04-25 16:36:13
3929
原创 PLSQL - 不创建自定义函数计算10的阶乘
法1:CONNECT BY结合使用DBMS_AW.EVAL_NUMBERSELECT dbms_aw.eval_number(substr(sys_connect_by_path(LEVEL, '*'), 2)) f FROM dual WHERE connect_by_isleaf = 1CONNECT BY LEVEL <= 10;法2:利用对数运算法则(积的对数等于对...
2020-03-20 15:58:57
1033
原创 PLSQL - 递归查询 Hierarchical Query
如果一张表中的数据行与行之间存在层级关系(hierarchical data),我们则可以使用递归查询语法来展现这种层级关系。一、语法START WITH子句用以在查询中指定开始检索的根节点(可以是多行);CONNECT BY子句用以指示层级关系的内在关联。如轨道图所示,START WITH子句和CONNECT BY子句孰前孰后都是可以的。递归条件(CONNECT BY c...
2020-03-20 01:00:06
1866
原创 EBS - API注册表单和功能
一、注册表单 FORMDECLARE l_formid NUMBER;BEGIN l_formid := fnd_form_s.nextval; fnd_form_pkg.insert_row(x_rowid => l_rowid ,x_application_id =&g...
2020-02-16 19:37:27
343
原创 EBS - API注册可执行和并发程序
一、注册可执行 EXECUTABLEDECLARE l_rowid ROWID; l_exeid NUMBER;BEGIN l_exeid := fnd_executables_s.nextval; fnd_executables_pkg.insert_row(x_rowid => l_rowid ...
2020-02-15 23:13:41
1639
1
原创 PLSQL - 利用自治事务实现按月生成流水序号示例
在序列号的实际应用场景中,常会出现按照某种条件从头开始计算序号的需要,如按年月生成流水号,2019年10月的第一个流水号为19100001,而11月的第一个流水号则为19110001。这种情况下单纯使用序列SEQUENCE则无法实现,而如果每次生成序号时从表中选取最大值又容易造成重复序号。本例采用自治事务与序列相结合的方式,实现按年月生成“YYMM+四位流水”格式的序列号,流水号要求每月重新计算。...
2019-10-22 01:16:36
553
原创 Oracle AR - 销售订单:登记订单功能权限控制及登记订单增加客户化处理
一、限制某个销售职责不能进行登记订单操作的方法即:使职责不能使用“销售订单:登记订单”(ONT_OEXOEORD_BOOK_ORDER)功能,可以实现的方法有:1、在职责的菜单排除项中增加排除“销售订单:登记订单”功能;2、在职责的菜单排除项中增加排除“ONT_SALES_ORDERS”菜单;3、从职责关联菜单的树中,去掉“ONT_SALES_ORDERS”子菜单;二、在标准登...
2019-05-23 17:33:06
750
原创 Oracle FND - 已知某功能或子菜单查询所在职责及路径SQL
--- features: 使用REVERSE函数使结果方便阅读。注:查询结果职责在最右端,即路径需从右向左读。---- bugs: 某些数据场景下可能不适用。
2019-04-17 23:24:24
755
1
原创 Oracle FND - 用户API fnd_user_pkg的常用用法
一、创建用户BEGIN fnd_user_pkg.createuser(x_user_name => 'YUSUF' ,x_owner => fnd_user_pkg.null_char ,x_unencrypted_pass...
2019-01-17 14:51:29
1909
原创 Oracle AR - 收款界面上的非数据库项金额查询SQL
SELECT SUM(decode(ra.status ,'APP' ,decode(ra.confirmed_flag ,'N' ,0 ,nvl(nvl(ra.amount_app...
2019-01-14 15:07:46
764
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人