作者:君子美植 我终于要离开 去到那星星月亮和彩虹的家乡 看起来离你们不远 可即便如此 我的踪影也很难觅到 我将去云中造间小屋 槐树和和苦楝树树枝绕着屋墙编 门前引一湾溪水 溪边垂几棵杨柳 再养一小队蛐蛐 伴我于歌声中安然入眠 在那,惊恐早已远离 清晨安宁的薄纱 似风中串串槐花 点点飘落到我独处的床前 在那,夜半孕育蛐蛐的歌声 正午点燃蝉儿的激情 黄昏翩飞出蝴蝶们紫色的梦 我就要动身离开 [Read more...]

网络上对这些问题的解决方法有很多,在这里,我只是把我个人在项目中遇到的一些问题做一个汇总。 1.客户端打开web adi 解决方法: •Select ‘Tools’ -> ‘Internet Options -> ‘Security’ (Tab) from the browser menu •Select the appropriate zone [Read more...]
键弹性域的属性都是在代码中动态设定的,所以通过个性化来disable有点问题。后来在网上找到一段代码,通过在custom.pll控制,达到了效果。 示例代码如下: procedure event(event_name varchar2) is form_name varchar2(30) := name_in(‘system.current_form’); block_name varchar2(30) := name_in(‘system.cursor_block’); begin if (form_name = ‘FAXASSET’ and [Read more...]

作为程序员,要取得非凡成就需要记住的15件事。 1、走一条不一样的路 在有利于自己的市场中竞争,如果你满足于“泯然众人矣”,那恐怕就得跟那些低工资国家的程序员们同场竞技了。 2、了解自己的公司 以我在医院、咨询公司、物流企业以及大技术公司工作的经验来看,这一点所言不虚。 不同公司的运营模式差异极大。如果你理解企业的运营模式,那你就不一样了!在这家公司中(或者对客户而言),你是参与业务运营的资产,你的工作能直接产生效益! 3、与最优秀的人为伍 很早以前,我喜欢打篮球,被分配到一个水平比较高的队里。一开始适应的确很困难,但环境的压力越大(重大比赛),我的长进也就越明显。 每个领域其实都一样:你周围人的水平(以及对你的期望)越高,你就会变得越优秀。 4、制造差异 每年学习一门新编程语言。为什么不呢?不断尝试新事物,你关注的技术种类越多,脚下的路就越宽广,你的职业生涯就会日新月异。不知道几年后Java的趋势如何?那就学习Clojure。学Ruby还是Python?这两种语言都可以试试啊。然后你才能知道哪种语言更适合某个特定的项目。看,掌握的语言多了,才能在需要的时候信手拈来吧。 5、畏惧,是最大的敌人 还是直接从书中摘一句吧:“在畏惧中做出的职业规划,很可能会让自己后半辈子就一直被‘圈禁’在小隔断里,永远不会有创造明天辉煌的时刻。没错,那样是安全,但有意思吗?” 6、要成为多面手 如果你掌握了所在领域的知识,那你只能是一名专业人士。用PHP编程?花点时间设置一台Apache服务器,让PHP和MySQL都跑起来。一直在用jQuery?试试Prototype。你懂了吧。 7、一个字:做 别指望别人过来教你该怎么做,出去,自己学着去做! 8、找一位好老师 找一位好老师可以让你在学习技术的时候有的放矢。作者给我们讲述了别人是怎么指导他学习的(顺便说一句,作者在这本书里讲了很多个人经历的小故事,他居然从一位演奏家转行来做软件开发!):“好好研究一下目录服务,熟悉一种UNIX变体,然后再掌握一门脚本语言。” 请记住这句禅宗谚语:“循路觅宗师,形影不相离,师知吾亦知,吾乃成宗师。” [Read more...]
使用DBMS_SQLTUNE之前,要先将ADVISOR赋予用户: grant ADVISOR to apps; 创建优化任务 –创建优化任务 declare l_sql varchar2(4000); l_sql_tune_task_id varchar2(100); begin –需要优化的SQL语句 l_sql := ‘select * from dba_objects’; [Read more...]

1.“不论我们的灵魂是什么做成的,他的和我的是一模一样的。” ——艾米莉·勃朗特 2.“假如你的寿命是100年,那我希望自己活到100岁的前一天,因为那样我的生命中每天都有你。” ——米尔恩 3.“嘘!那边窗户里亮起的是什么光?哦,那是东方,朱丽叶就是太阳!” ——莎士比亚《罗密欧与朱丽叶》 4.“他是我的南北,我的西东。是我作息的意义。是我的日夜,欢唱谈话的内容。我以为爱会永恒不朽……我错了。” ——W·H·奥登 5.“当你终于因为现实比梦境更美而无法入睡时,你恋爱了。” ——苏斯博士 6.“爱情是一种暂时的疯狂。它像地震一样爆发,然后又平息。而当它平息时,你得做出一个判断。你得弄清楚你同他是否已经盘根错节地成为一体,以至无法分开。” ——《柯莱利上尉的曼陀林》 7.“和我一起慢慢变老吧!最好的日子还在后头。” ——罗伯特·布朗宁 8.“你知道吗?我每天都爱你更多。今天爱得比昨天多,明天爱得比今天多。” ——罗丝蒙德·杰拉德 9.“谁见她就会爱她,谁爱她就会永远爱她。” ——罗伯特·彭斯 10.“希望不久我将把你紧紧地搂在怀中,吻你亿万次,像在赤道下面那样炽烈的吻。” ——拿破仑·波拿巴1796年发给妻子约瑟芬的快信
使用集合操作符给嵌套表赋值 SET:用于取消嵌套表中的重复值. MULTISET UNION:取得两个嵌套表的并集(DISTINCT) MULTISET INTERSECT:用于取得两个嵌套表的交集. NULTISET EXCEPT:用于取得两个嵌套表的差集 1.使用SET操作符:用于取消特定嵌套表中的重复值 declare type nt_table_type is table of number; nt_table nt_table_type := nt_table_type(2, [Read more...]
Start and stop applications – R12 Database Tier Scripts in R12 For Database tier you need to start database and [Read more...]

OAF中的组件限制的都很严格,使得有些效果很难使用OAF实现。通过在OAF中嵌入jsp页面,使得相互配合,这样就能实现一些稍复杂的UI。 首先,要准备好嵌入的jsp页面。该jsp页面通过上下文获取数据库链接,实现一个简单的查询,显示出来。 代码: <!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd”> <%@ page import=”oracle.apps.fnd.common.WebAppsContext,oracle.apps.fnd.framework.webui.OAJSPHelper, oracle.apps.fnd.framework.webui.URLMgr”%> <%@ page import=”oracle.apps.fnd.common.WebRequestUtil”%> <%@ page [Read more...]

最近学习OAF,在涉及到多张表的地方,做新增和更新时有很大的困惑。今天尝试了一下直接调用pl/sql,感觉这样做有点像form开发了,不过确实挺方便的。尤其是在一些把form改成web的地方,即利用了原有的pl/sql包,又能在web中做展示。 下面做一个小的尝试,将OAF页面的注册更改为web版的,截取其中两段主要的代码。 首先是pl/sql中包的准备: procedure registerOAF(p_function_name varchar2, p_user_function_name varchar2, p_type varchar2, p_web_html_call varchar2, p_description varchar2, p_message out varchar2) is row_id varchar2(24); [Read more...]

1.Win7下JDeveloper出现花屏 在win7 32位系统上面,使用JDeveloper 10g做OAF开发,可能会出现花屏,滚动鼠标时屏幕无法及时刷新。查到的原因,可能是显卡不好。不过OTN上有个解决办法,能解决花屏,但是在运行程序启用OC4J时,win7还是会自动调成Basic模式。 1 – install the latest sdk (1.6) and let the jdeveloper use it 2 – You [Read more...]
1.记住登陆密码 Tools->Preferences->Oracle->Logon History , “Store history”是默认勾选的,勾上“Store with password” 即可,重新登录在输入一次密码则记住了。 2.执行单条SQL语句 在使用PL/SQL Developer的SQL Window时,按F8键,PL/SQL Developer默认是执行该窗口的所有SQL语句,需要设置为鼠标所在的那条SQL语句,即执行当前SQL语句; Tools->Preferences->Window types ->SQL Window,勾上“AutoSelect Statement” 即可。 [Read more...]
做并发请求,经常需要考虑到性能问题,所以对并发程序的分析就很重要,这里简单介绍一个跟踪并发程序的方法。 1)找到要跟踪的并发程序,启用其跟踪。 2)提交该并发程序,并记下其请求ID。 3)运行如下sql,获取其trace文件地址。 select ‘Trace Name: ‘ || dest.value || ‘/’ || lower(dbnm.value) || ‘_ora_’ || oracle_process_id || ‘.trc’, [Read more...]
sqlload是Oracle数据库中一个非常好用的工具,可以将任意格式的文本数据导入到数据库中。其导入主要是由一个控制文件来控制,具体的用法,网上有很多的讲解,这里给出一个自动生成控制文件的程序。该程序默认数据文件是csv格式的,能做到数据以追加的形式加到数据表,能忽略围绕值的双引号。 create or replace procedure auto_sqlload_control_file(p_table_name in varchar2, p_date_format in varchar2) is –p_table_name为表名 –p_data_fromat为数据文件中时间的格式 begin for i in (select ‘LOAD [Read more...]
If you are working with Oracle Applications, here’s how you can initialize your session in whatever tool you are using [Read more...]
OAF页面的字段查找和Form的很相像,很早之前我就仔细看过。但是上周有同事问我时,我却给忘记了,今天才偶然想起来的。下面以search project(Projects SU, Vision Operations (USA)-> Projects->Delivery->Search Projects)的页面为例: 进入页面,可以看到About this Page链接(如果没有此链接,请修改配置文件FND: Diagnostics的值为Yes),然后点击进入。 在页面内,展开树形文件结构,可以看到字段所对应的VO(类似Form中的Block)。 点击展开Business Component References Details,可以看到更多关于VO、AM和CO的信息。 任选一个VO,点击进入查看页面。 由此可以查看到更详细的关于VO的信息,进而在VO中查找到页面对应的字段。对于About页面中其他tab的内容,可以自行摸索。
在做报表开发的时候,经常需要查找页面对应的字段和其所在的表,利用Form页面Help菜单里面的功能就可以做到,下面简单介绍一下查找的方法。 以弹性域字段的Form页面(Application Developer->Flexfield->Descriptive->Segments,进入使用Ctrl_F11)为例,如下: 点击Help->Diagnostics->Examine,可以查看到每个字段所在的块。选择SYSTEM块,能查看LAST_QUERY字段,以查出系统的最后一个查询语句。 由于一个Form页面可能用到多个Block,所以使用SYSTEM的LAST_QUERY可能会查不出所有Block使用的最后一次查询语句。 点击Help->Diagnostics->Properties->Item,选择Object为Block,然后选择不同的Block,在Property里面选择Last Query。根据选择的不同的Block,可以看到其不同的Last Query。 至于更多的选项所对应的内容,可以慢慢去摸索。 如下为网上选摘: How to see application version, Form shortname and version of [Read more...]
#1: You are a poor communicator It is said that more than 50% of a project manager’s time is spent [Read more...]
连续做了好长时间,却还是没能完成一张HR模块的人员减少报表,对自己比较失望。不管怎样,通过这次报表开发,对sql的使用还是有了进一步的认识。 package create or replace package CUX_HR_LEAVE_EMPLOYEES is — Author : MICZHU — Created : 9/23/2010 9:20:36 AM — Purpose [Read more...]
一般情况下,表在数据库创建后,就可以在应用中使用了。但是,对于flexfields、Oracle Alert和Web ADI,表在使用前需要注册。对于表的注册,可以使用AD_DD包里的procedure来完成。 Procedures in the AD_DD Package 1. Procedure REGISTER_TABLE procedure register_table(p_appl_short_name in varchar2, p_tab_name in varchar2, p_tab_type in [Read more...]
基本语法 select … start with initial-condition connect by nocycle recurse-condition select … connect by recurse-condition 首先,我们先新建一张表。 — Create table create [Read more...]

因为最近一些开发报表的需求,接触了弹性域的概念。现在把看到的一些资料,经过我的理解,试着再描述一下,以便加深印象。 概念:A flexfield is a field made up of sub-fields, or segments. There are two types of flexfields: key flexfields [Read more...]
EBS的报表开发,主要有SQL*PLUS、PL/SQL和Report Builder三种,各种开发的参数各不相同,下面略作一些解释。 (1)SQL*PLUS 参数形式:¶m declare yourname nvarchar2(25); begin select t.name into yourname from yourtable t where t.id = &1; end; [Read more...]
子程序就是能够接受参数并被其他程序所调用的命名PL/SQL块,其参数有三种模式:in、out、in out,下面以一个实例的形式结合参考手册来解释其区别。如下是一个新建的子程序: 下面是一个对新建子程序的测试程序: 测试程序的运行结果如下: 通过这个测试程序,基本能了解三种参数模式的基本用法。不过在PL/SQL手册中,out和in out类型的参数是不推荐使用的,所以请注意。 IN OUT IN OUT 默认 必须被指定 必须被指定 向子程序传值 向调用者返回值 向子程序传递初始值并向调用者返回 更新后的结果值 形参的作用同常量相同 形参的作用同变量相同 形参的作用同被初始化过的变量相同 [Read more...]
下面以一个简单的练习来学习Form开发中Master-Detail关系和Tab Canvas,为了简单起见,能够在本机运行,以下的练习不是从Template.fmb开始的,而是完全从零开始。 一)建立两个数据块:POST和POST_COMMENT,其关系如下。 二)建立POST和POST_COMMENT之间的Master-Detail关系。 步骤一:选择POST数据块下的关系。 步骤二:点击添加(+)按钮。 步骤三:然后在出现的界面做如下更改(黄色标注部分)。 点击确定后,会自动增加一些触发器和程序单元,这里不用去细研究。 三)建立内容画布POST。 点击添加(+)建立新画布,修改其属性 名称:POST。 四)添加Tab选项卡画布。 在新建的POST画布上面,点击标签画布按钮,在POST新建一个Tab画布。 建成后效果如下: 修改Tab画布两个页面和Tab的属性。 两个页面的名称和标签属性分别改为DETAIL和COMMENT。 Tab的属性名称改为POST_TAB。 五)添加Item到画布。 将数据块POST下的USER_NAME和POST_CONTENT添加到POST画布下。 将数据块POST下的POST_TITLE和POST_KEYWORD添加到POST_TAB画布的DETAIL标签页。 [Read more...]
Form开发中的触发器和Windows开发中的事件响应机制很类似,但是感觉又要复杂一些,尤其是执行顺序。下面的内容来至Oracle support,虽然版本是对应的Form 4.5,但是内容在最新的版本里面应该也是适用的。 Introduction ———— This document lists the order in which triggers fire in Oracle Forms 4.5: o The [Read more...]
OAF的开发虽然也是采用类似组件的形式,但却不是直观可视的,所以有时也需要熟悉常用组件的属性。下面是在一个英语网站看到的关于region和item的介绍,本想翻译成中文,又怕翻译的不够准确,相信做OAF开发的都能看的懂。 Regions in OA Framework Regions are containers for for different items in a page.In a page there can be [Read more...]
首先看一下forall使用的语法: FORALL index IN lower_bound..upper_bound sql_statement; index只能在FORALL语句块内作为集合下标使用。SQL语句必须是引用了集合元素的INSERT、UPDATE或DELETE语句。bound的有效范围是连续的索引号。 forall在大批量操作数据时,采用事物处理的方式,所以性能调优方面,有很大的用处。 下面以一个实例说明: declare type id_type is table of post.id%type; id id_type; start_time number; end_time number; begin [Read more...]
分享一首音乐,第一次听到这首歌时,就很喜欢。音乐里面轻快的旋律,感觉很温暖。 豆瓣简介:Valder Fields是Tamas Wells在缅甸北部的一个雨季里写成的,当时Tamas正致力于一个社会卫生艾滋病毒/艾滋病的教育项目。他说,这首歌是一种意识流的歌,暗示在生活的责任(遵守时间,申请职位)与一种迈克.罗尼格(澳大利亚漫画家Michael Leunig) 式的生活计划(在温泉边温暖的泥土上睡觉)之间的压力。Tamas建议说不要因为负担太重或没有负担而使自己扭曲了事实。 汗水、泪水编织的天籁 轻快、含着些忧伤的吟唱。将人们带入那片人们自己心中含藏已久的田野。主旋律就仿佛是现实中不可跨越的责任,然而反复的和声却是在人们心中永远不会遗逝的对自己理想的执着,仿佛主旋律是一直跟从着和声,而和声带领的主旋律。 就像人在现实中一直是在为不可实现的梦想而奋斗。 纵然无法实现,但只要有那一颗奋斗的心,生命就会精彩,就如旋律一般轻快明朗。 可能初听这首歌,被社会压得喘不过气来的人们,会黯然落泪,但正因共鸣产生,逐渐由一种哭诉,演变成一种理解。一种劝解, 让人们淡然面对现实的残酷。 或许 Valder fields 根本不存在, 但人们心中的那片田野却是一直存在的,从而成为了人们的追求。这首歌也正因向所有对现实失望的人予鼓励而让听过的人爱上了这位“知己”。 [Audio clip: view [Read more...]

因为公司的安排,最近还是在学习Oracle EBS的二次开发,因为之前已经复习了一下OAF和Reports的开发,所以这两天又看了Form的开发。以前学习Form开发的时候,只是按照一个文档的步骤,亦步亦趋地做,所以做完之后收获也不大。在做Form开发的时候,有一个感觉很不爽的地方,每次都要上传编译后,才能看到运行的结果,所以就想能不能在本地运行后查看结果。 下午,花了点时间来研究这个问题,Form Builder上有运行表单的菜单,所以就基本可以肯定,在本地是能运行的。但是每次点击运行,总是有错误,所以就开始不停地search,最终还是解决了问题。下面,总结一下遇到的问题: 前提:一张已经做好的表单,且应该是编译没有错误的。 问题一:打开Form Builder,连接数据库,点击菜单“程序”-》“运行表单”,出现“FRM-10142:HTTP监听程序没有在******的端口8889上运行。请启动该监听程序或检查您的运行时首选项。” 解决办法:打开Form Builder启动程序同目录下的“Start OC4J Instance”程序。 注意:不要关闭打开的“Start OC4J Instance”程序的控制台,停止时,建议选择相同的“Shutdown OC4J Instance”程序。 问题二:问题二是在问题一的基础上出现的,操作了问题一的解决办法后,再次运行表单,会出现浏览器崩溃的情况。 解决办法: 步骤一:找到Developer Suite安装目录下的jinit文件夹(如:C:\DevSuiteHome\jinit),安装其中的jinit.exe应用程序。 [Read more...]
因为OAF开发的适用面很窄,所以即使OAF开发采用的也是MVC设计模式,但是很多用语都没听过。随着OAF开发的深入学习,如果不熟悉很多专业用语,是很困难的。 此外,OAF开发中面向对象的重用,官方给出的洋葱图如下: 但是在学习的过程中,我个人感觉下图的模型使用的更多些,至少几个实验给我的感觉是这样的。当然,官方给出的的方法,应该来说是更加合理的。 下面是在开发需要熟悉理解的概念: 对象名 作用 父类 备注 EO:Entity Object EO封装业务规则、业务逻辑 EO完成对数据的实际的增、删、改动作 EO提供贯穿多个应用的持续的数据验证 OAEntityImpl AO:Association Objects 定义EO之间的关联 VO:View Object VO封装了一个数据库查询 [Read more...]
趁着最近一段时间不忙,把原来学习的EBS又大致的复习了一下。上两周,把财务模块看了下,这周准备再学习一下OAF的二次开发。 OAF是Oracle Application Framework的简写,其实去年已经学过一次,只是当时时间很短,所以不少概念又忘记了!这次借着时间多,准备把自己学的一些东西记录下来,以便日后再用,也希望我自己能加深对OAF的理解。 在开始学习OAF开发之前,要先理清一下OAF和ADF之间的关系,下面摘自网上的一些解释。 ERP100上atomic79给的解释如下: “从建模角度来说,两者底层都是使用了Oracle BC4J模型,这点是他们最大的相同之处。OAF和ADF都是Oracle提出的开发框架的模型。ADF主要面向于使用JDeveloper开发独立的J2EE应用,可以不依赖具体的Oracle Application环境而独立运行,可以轻易做出与EBS的Web界面比较相似的效果。OAF是个狭窄的二次开发框架,其所进行开发的产品必须基于特定的EBS环境来运行,不能独立存在。这是他们最大的区别” 还有一个英文的解释是: “As of R12, OAF can only be used for Oracle Applications development/extensions. Oracle ADF is an end-to-end J2EE framework. ADF is currently not used for Oracle Apps. Development / extensions. It is expected to be the case in Fusion and is a part of the Oracle Fusion Middleware.” 在这里,把OAF和ADF拿出来区别一下,主要是我在刚开始学习OAF的时候,对他们的关系搞不清楚。 OAF的开发模型,要想理解清楚,还是需要之前有一些JavaEE基础的。我在理解OAF的架构时,是在网上找的别人的资料,我已整理后放在了网上。(点此下载) 在R12中,OAF的开发是基于新的Oracle Jdeveloper10g的。Metalink上OAF的Patch Number:5856648。下载p5856648_R12_GENERIC.zip即可。本文档中默认解压到E盘根目录下。下载解压后 p5856648_R12_GENERIC文件夹下有三个目录:jdevbin、jdevdoc、jdevhome,其中jdevbin中是 jdeveloper10g [Read more...]
第一、他看上去单纯,但却明智。 第二、他是谦逊的。 第三、他真心关心他的工作伙伴们,不带任何功利色彩。 第四、在他的一切商业活动和个人生活中,他是诚实与可靠的,为了能成功地和别人一起工作,在生活的每一个细小的方面,都必须做到诚实可靠。 第五、他将远远离开流言蜚语。 第六、他将给予别人以赏识和赞扬。 第七、他将是温厚而耐心的。 第八、他将是公平和公正的。 第九、他将乐于进行建设性的批评和接受批评。 第十、他将是一个值得尊敬的人。 第十一、他对人将是慷慨大度的。 第十二、他将拥有积极的心理态度。 Ps:以上摘自《一生的计划》这本书,从上面的十二条里面,我们可以感觉到:要想成为一位人际大师,首先要打造自己,让自己成为一个别人乐意交往的人。
有段时间没有来更新空间了,上上周升级空间的时候,不小心差点把数据都丢了!最后,好在数据还能在本地还原。其实,最近的生活是比较轻松的,只是可惜都被我浪费掉了。 上个月,在学校领了毕业证和学位证之后,我的像梦游一样的大学四年结束了!在这最后的一段时间里,生活基本还是一如往常。不过,也发生了一些小插曲。本来准备和中文系的一个班联谊的,可惜被人家莫名地取消了,很郁闷也很无奈。毕业典礼上,根叔的讲话是我们没有想到的火爆,只是我们班人被当成了“反面”。相信被记者拍到的那几位同学,以后很长的时间都不会忘记这件事。散伙饭上,大家畅所欲言,和大家相比,我的大学生活就显的单调多了!最后,大家一个一个地离去,没有太多伤感,只有对未来的美好憧憬。 从学校回家待了几天,然后就逃也似地回到了公司。没有想到在公司,依然是每天去“打酱油”。感觉很失望,但又无可奈何,只有每天过着颓废的生活。工作的同学,陆续也都正式上班了。听到他们说,每天都忙的要加班,我心里很矛盾。加班的工作,大家都不想要,但是对于出入职的人来说,只有在工作中,才能有提高。 Ps:静静地思考,缓慢地生活。
HTMl5的提出已经有一段时间了,大部分的浏览器也已经能支持了(目前的ie除外,据说ie9会支持)。一直想看看它的新特性,今天趁着有时间,就测试了一下canvas标签,感觉确实挺不错的。 下面是我写的一个测试(静态网页): Your browser does not support the canvas element.
由于升级不慎,致使升级后的空间无法使用原空间备份的数据。无奈,只得将数据在本地还原,然后制作成静态的网页发布。此次升级的失败,也算是教训惨痛,差点丢失所有数据,以后再升级一定要注意了!不管怎样,数据总算是备份了,通过在本地还原,再制作成静态网页,现将其连接发到下面。 new beginning… About 程序员的相关笑话 个人博客建站总结 Album Share 光阴似箭 MECE分析法 个人知识管理 我的知识管理 烦心事 读《麦肯锡方法》 Links 你是性格内向的人吗? 接受你的个性 将你的光芒洒向四方 提问的智慧 [转摘]拥抱的奇妙之处 [Read more...]
