预览模式: 普通 | 列表

《心是孤独的猎手》读后感



作  者: (美)麦卡勒斯 著,陈笑黎 译
出 版 社: 上海三联书店
出版时间: 2005-8-1
字  数: 250000
版  次: 1
页  数: 342
印刷时间: 2005-8-1
开  本:
印  次:

查看更多...

Tags: 心是孤独的猎手

分类:读书&想法 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 7043

PLS-00306:错误解决思路

如果你是像我一样初次使用Net+Oracle的结合,我想你会跟我一样,有很大的概率碰到这个问题

=======================================================
PLS-00306: wrong number or types of arguments in call to '存储过程名'
orA-06550: line 1, column 7:
PL/SQL: Statement ignored
=======================================================

或者说像这样子的:

pls-00306 调用 时参数个数或类型错误


如果没有经验的话,就会一头雾水到处乱撞。我也是被这个搞得很痛苦了,我把自己解决这问题思路与大家分享一下,希望能对您有所帮助.

Step1:确认你的Oracle包中的存储过程中的参数的总数,是否与您在Net中调用存储过程中的参数保持一致的数目。还有就是要注意function传参与procedure传参的参数的不同写法.

function传参的时候需要加入:号
例如:


Step2:确认你在Oracle包中的存储过程的参数的数据类型,是否能与您在Net中调用存储过程中的参数的数据类型匹配


Step3:确认你在Net应用程序中所使用的连接存储过程和获取返回值的方法是否正确..

这主要是在使用function的时候与使用procedure的时候,当需要获取存储过程或包中的返回的值的时候需要注意的不同方法.一般我们在获取function的返回值的时候使用的是

new oracleParameter(":P_PRICEFORMID",OracleType.VarChar,20),
new oracleParameter(":P_VENDOR_CODE",OracleType.VarChar,20),
new oracleParameter(":P_VENDOR_SITE_CODE",OracleType.VarChar,20),
new oracleParameter(":P_VAT_CODE",OracleType.VarChar,20),
new oracleParameter(":P_ITEM_CODE",OracleType.VarChar,20),:

而使用procedure的时候是不用:号的


Step4:确认你所传入Oracle中的各参数的值是否会出现null值.

在传入参数过多的时候,这里面的问题很难发现.只能通过一个一个值传入去测试.所以最好的解决办法是将所要传入的参数都给定一个默认值,同时要注意数据类型的匹配.尽量避免null值和空值的传入. 有些情况下使用VS的断点去追踪,明明看见有值,可以在传入oracle表内就会没值,这种情况要特别注意.我就是碰到这样的情况了.


Step5:确认你的服务器端Oracle版本是否与你在客户端Oracle的版本保持一致.

有些时候因为在不同的客户端版本下所编译的包的结果会有所差异,比如我在8i的情况下编译通过,有可能在9i的版本就会通不过,这可能与pl/sql的语法规定有关.所以尽量保持客户端与服务器的oracle版本一致.最好的判断办法就是看看 sql plus的版本是否是一致.


我拿自己在实际过程中碰到的一个例子来说明吧.
见:
http://topic.csdn.net/u/20091019/00/8f05ee3b-e41c-4aff-bafd-a68d47f8eebf.html

我报的错是这样的:
报错如下:

orA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'InsertTOEBSCODE'
orA-06550: line 1, column 7:
PL/SQL: Statement ignored

我的问题是:在本机上测试正常,放至服务器上就出现问题了.最终找到的根缘在于我有个字段传了个null值或是没有传入值进入,导至报错.我是一个一个字段去把这原因找出来的.虽说有点笨拙,但还是把问题给找出来了.




我的操作类中的方法:

这里要注意几点的是:

1.要获取包中存储过程返回的值,需要这样写
parameters[13].Direction=ParameterDirection.Output;
2.注意C#与Oracle的时间转换 一般最好的解决方法是在C#中设置成string类型,然后在Oracle中通过to-date()函数把它转化成时间格式.一开始我也是在这碰了个丁子,后来通过在c#传入所要的时间格式,在oracle中转换成要用的时间格式即可.
parameters[5].Value = effectiveDate.ToString("yyyy-MM-dd hh:mm:ss");
要规定格式是因为考虑在服务器端是英文操作系统,所得到的默认时间格式与客户端所提交的不同.所以需要根据服务器端的系统环境进行时间格式的设置.



/// <summary>
        /// 插入已OK的价格至EBS中
        /// </summary>
        /// <param name="priceForm"> </param>
        /// <returns> </returns>
        public bool InsertToEBS(Entity.CAS.PriceFormInfo priceForm)
        {
            oracleParameter[] parameters =
            {
                new oracleParameter("P_PRICEFORMID",OracleType.VarChar,20),
                new oracleParameter("P_VENDOR_CODE",OracleType.VarChar,20),
                new oracleParameter("P_VENDOR_SITE_CODE",OracleType.VarChar,20),
                new oracleParameter("P_VAT_CODE",OracleType.VarChar,20),
                new oracleParameter("P_ITEM_CODE",OracleType.VarChar,20),
                new oracleParameter("P_EFFECTIVE_DATE",OracleType.VarChar,20),
                new oracleParameter("P_PURCHASER",OracleType.VarChar,20),
                new oracleParameter("P_CHECKER",OracleType.VarChar,20),
                new oracleParameter("P_AUDITOR",OracleType.VarChar,20),
                new oracleParameter("P_POCT",OracleType.VarChar,10),
                new oracleParameter("P_UNIT_PRICE",OracleType.VarChar,20),
                new oracleParameter("P_PASSED_DATE",OracleType.VarChar,20),
                new oracleParameter("P_TERMS_DESC",OracleType.VarChar,100),
                new oracleParameter("v_retval",OracleType.Number)

            };


            parameters[0].Value = priceForm.FormID.ToString();
            parameters[1].Value = priceForm.SupplierCode;
            parameters[2].Value = priceForm.Vendor_site_code;
            parameters[3].Value = priceForm.Tax.ToString();
            parameters[4].Value = priceForm.MaterialCode.Trim();


            DateTime effectiveDate= Convert.ToDateTime(priceForm.EffectiveDate.ToString());

            DateTime passedDate= Convert.ToDateTime(priceForm.PassedDate.ToString());

        

            if (priceForm.EffectiveDate > priceForm.PassedDate)
            {


                parameters[5].Value = effectiveDate.ToString("yyyy-MM-dd hh:mm:ss");

          
            }
            else
            {
                parameters[5].Value = passedDate.ToString("yyyy-MM-dd hh:mm:ss");
            }
            parameters[6].Value = priceForm.Purchaser;
            parameters[7].Value = priceForm.Checker;
            parameters[8].Value = priceForm.Auditor;
            parameters[9].Value = priceForm.POCT;
            parameters[10].Value = priceForm.Price.ToString();
            parameters[11].Value = passedDate.ToString("yyyy-MM-dd hh:mm:ss");
            parameters[12].Value = priceForm.Payment.ToString().Trim();
            parameters[13].Direction=ParameterDirection.Output;

          

            try
            {
                Convert.ToInt32(OracleHelper.ExecuteNonQuery(OracleHelper.ConnectionStringProfile, CommandType.StoredProcedure, "PO_CAS_PRICE_PKG.InsertToEBSCode", parameters));

                int retval = Convert.ToInt32(parameters[13].Value);

                if (retval == 1)
                {
                    return true;
                }
                else

                    return false;
            }
            catch (Exception ee)
            {
                throw ee;
            }
            finally
            {

            }

包中的存储过程
中的存储过程:

create or replace package PO_CAS_PRICE_PKG is

  -- Author  : EASTJAZZ
  -- Created : 2009-10-16 0:29:13
  -- Purpose :

  procedure InsertToEBSCode(P_PRICEFORMID      IN VARCHAR2,
                            P_VENDOR_CODE      IN VARCHAR2,
                            P_VENDOR_SITE_CODE IN VARCHAR2,
                            P_VAT_CODE        IN VARCHAR2,
                            P_ITEM_CODE        IN VARCHAR2,
                            P_EFFECTIVE_DATE  in VARCHAR2,
                            P_PURCHASER        IN VARCHAR2,
                            P_CHECKER          IN VARCHAR2,
                            P_AUDITOR          IN VARCHAR2,
                            P_POCT            IN VARCHAR2,
                            P_UNIT_PRICE      IN VARCHAR2,
                            P_PASSED_DATE      IN VARCHAR2,
                            P_TERMS_DESC      IN VARCHAR2,
                            v_retval          out number);

end PO_CAS_PRICE_PKG;


调用函数取得返回值的Example


public string GetItemDescription(string item_code, int org_id)
       {
           oracleParameter[] Parms =
           {
              
               new oracleParameter("p_item_code",OracleType.VarChar,20),
               new oracleParameter("p_org_id",OracleType.Number,4),
               new oracleParameter("v_item_desc",OracleType.VarChar,150)
           };

           Parms[0].Value = item_code;
           Parms[1].Value = org_id;
           Parms[2].Direction = ParameterDirection.ReturnValue;


           IList<Entity.CAS.EBSVendorInfo> vendorItemList = new List<Entity.CAS.EBSVendorInfo>();

           oracleHelper.ExecuteNonQuery(OracleHelper.ConnectionStringProfile, CommandType.StoredProcedure, "PO_VENDORS_PKG.GetItemDescription", Parms);

         return Parms[2].Value.ToString().Trim();
       }


Function:

  function GetItemDescription(p_item_code in varchar2, p_org_id number)
    return varchar2 is
    v_item_desc varchar2(150);
  begin
  
    select msib.DESCRIPTION item_desc
      into v_item_desc
      from MTL_SYSTEM_ITEMS_B msib
    
     where msib.SEGMENT1 = trim(p_item_code)
       and msib.ORGANIZATION_ID = p_org_id;
  
    return v_item_desc;
  
  end GetItemDescription;



初学过程中的一点小经验,与大家分享,欢迎指正.



查看更多...

分类:编程技术 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 24732

Web开发电子期刊2009年第9期(总第37期)



第37期,匆匆上阵,请大家见谅


下载文件 点击下载此文件

分类:编程技术 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 4589

《沸腾十五年》读后感




作  者: 林军 著
出 版 社: 中信出版社
出版时间: 2009-7-1
字  数: 437000
版  次: 1
页  数: 445
印刷时间: 2009-7-1


查看更多...

Tags: 沸腾十五年

分类:读书&想法 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 5705

Oracle EBS:Form Builder 中 LOV的建立

Oracle EBS:Form Builder 中 LOV的建立

环境:
DataBase:Oracle 10G
Tool: oracle Forms 6i FormBuilder

建立LOV的关键点在于:

手工建立LOV->定义数据组(Record Group)->指定LOV返回的数据(Return ITEMS)->将LOV加入到对应的ITEMS)->


建立LOV要注意的地方:

查看更多...

Tags: LOV的建立

分类:企业信息化 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 12107

[译]使用C#的用户控件创建ActiveX

文章:Create an ActiveX using a Csharp Usercontrol
来源:http://www.codeguru.com/csharp/.net/net_general/comcom/article.php/c16257
原著作者:Andreas Verhamme
翻译:Dezai

这篇文章主要是介绍如何在C#中如何使用DotNet的用户控件来创建ActiveX控件.你可以设计ActiveX的相关属性,方法和事件.

开发环境:Visual Studio2005




查看更多...

Tags: 创建ActiveX

分类:编程技术 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 7431

我深深感觉到未来的压力


    
       很快,就要到自己的第二十七个年头了.最近日子过得很是闹心.倒不是工作上或生活上有什么不顺之事,只是感觉到责任越来越重,压力越来越大.都说男人三十而立,留给我的时间不到三年.现在的我,是实实在在的三无新人,无车,无房,无老婆---虽说现在的日子还不致于过得很是拮据,但对未来,说实在的我的确是没有什么把握.
今年很异常,有时候总是很想睡觉,可总是睡不着,感觉有许多事情需要去做,时间总是永远不够用.很想尝试去做好每一件事,可总是感觉有这有那样的不妥.似乎总有些是非总是围绕在自己的周围,那种的感觉说不出来,总是很扰心.很多个晚上,我总是作着同样一个梦.在一个黑黑的屋子里,数千计的蛇缠绕着我,我使尽全身力气挣扎,逃离这蛇房。可每每就在要逃离的那一瞬间,我总是被吓醒。那种害怕的感觉,也真的是害怕到绝望了。一年前,一位作设计也很会算命的的朋友经我算过人生:说我总是会被事非缠扰. 原来不太信命的我,倒也感觉到大师的话不是吹水的了。
面对工作,现在虽说还可以靠技术混混日子,但三十岁后呢?我会在公司一直做下去吗?感觉没有比较明确的职业发展。而对未来的生活,我总是在犹豫不决在哪里定下自己在落脚之处,要我在一个根本不熟悉的地方定居,毕竟是个很难很难做得了的决定。一居定终生虽然说得稍为过,但往后又有多少机率有足够的资本去移居他地呢?深圳是我最希望的地方,可我实在对这超高房价承担不起,也只能眼羡而已了.面对周围的人们,我也似乎只是在工作中尽自己的职责而已,生活中的交际似乎远不如远在深圳的网友那么密切。同样,而对爱情,有过一次的痛彻心扉的经历之后,我总是陷入到想爱不敢爱,只会以旁观者的角色去看待。这些事情无声无息,时隐时现地在我的脑海中飞来飞去的。身在长安,几乎没有自己的人脉,想做事情还是得靠自己,一个人走路,比别人花费的力气还是要多一点。
深感欣慰:零零散散的客户们总是不经意地给我带来很多意外的收获。今年虽说公司在上项目,没有什么多少的时间去赚赚外块.很多已成为朋友的客户们理解和宽容,也不经意让自己的担子加重了一把。我始终认为,做事如做人,既然给予别人承诺,那就要对得起别人,对得起自己。这原则,我还是要去坚持的. 其实很想创业,男人没有创业的心不是一个完整的男人,可是算算自己的分量,也实在是自不力量了。也许我们确实只看到创业者风光的一面,但没看到倒在前面千千万万的垫背者。当然,路还是要一步一步地走下去。

我不知是不是因为看了南怀瑾的《老子他说》的缘故,整个人感觉比原来变得更沉闷了。说来说去,就是压力太大了.很想去实现一些事情,很想快快乐乐去过每一天。但最简单的生活,的确需要付出最大的汗水,承受极大的压力---我没有这么NB,但我已经深深感受到了对未来生活的惆怅与迷茫......

很多人生活得不快乐,是因为他们追求的不是幸福,而是比别人幸福。

我也是很长时间没写点东西了,发点劳骚.抒抒心情,散散郁闷。

查看更多...

分类:成长 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 5446

Oracle EBS:Form个性化(2)

分类:企业信息化 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 7585

Oracle EBS:Form 个性化(1)

Form的个性化在一些满足用户的小需求及权限方面的控制可以起到一定的作用,配合EBS其它的开发工具可以达到意想不到的效果。该功能不仅是技术功能的一次增强,也是对业务功能的扩展,提高了系统的柔性.

1.Form个性化效果不起作用的原因
a.Rule规则或Action 没有启用
b.Condition无效.
c.触发事件或触发对象不是所需要的
d.Rule的使用范围只是给予了相对应的职责或站点,而不是给所有的部分都可以使用。
e.在执行“内置”活动中的"Raise_Form_Trigger_Failure"造成了所有的事件都失效
f.Action中所设置能使用的语言,不是设为All,而仅限于了某种语言.
g.在为Function创建了一个功能之后,又在同一个Form中执行了不同的Function

2.
a.Item的初始化值(INITIAL_VALUE)只能在WHEN-NEW-RECORD -INSTANCE事件下进行改变设置。

查看更多...

Tags: Form 个性化

分类:企业信息化 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 13245

Oracle EBS:PO 采购 来源补充规则的设置

PO中的供应商来源补充规则对MRP,ASCP均有比较大的影响

Step1.切换到PO模块或职责,选择组织




Step2.选择菜单项中的 供应来源->来源补充规则




查看更多...

Tags: Oracle EBS PO模块 采购

分类:企业信息化 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 8657

Web开发电子期刊2009年第8期(总第36期)

欢迎下载我们的Web开发技术电子期刊


本期共摘选文章62篇,感谢所有原创文章的作者.同时感谢所有支持本刊发展的朋友们。





下载文件 点击下载此文件


Net

查看更多...

Tags: Web开发电子期刊 电子期刊

分类:编程技术 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 5382

Oracle EBS: 物料的属性设定 (2)

7.



计划方法:
(1)
MRP plan(MRP 计划)
一组计划订单和建议,用于释放或重新计划现有物料的计划接收量,以满足相关需求项目的给定主计划。以离散数量和订单日期表示

MPS plan(MPS 计划)
一组计划订单和建议,用来释放或重新计划现有的物料计划接收量,以满足给定的 MPS 或包含 MPS 计划组件的 MRP 计划项目的主计划。以离散数量和订单日期表示。

MRP/MPP计划:这里是执行两段式计划,先执行MRP,再执行MPP

查看更多...

Tags: 物料的属性

分类:企业信息化 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 9794

Oracle EBS: 物料的属性设定

概要

物料是整个ERP的根基,几乎所有的业务操作都是围着物料转的。而Oracle EBS中的物料属性有近280个属性,要一个一个去了解一个一个去设定几乎是一个不太可能的事情。大部分的属性都是根据企业库存的作业流程去按需设定。有一些属性是设定在主组织里的,有一些属性是分配在各组织中去设定的。物料属性的设定有一些需要权衡的地方,也会对实际的作业流程产生一定的影响。这里针对一些比较常用的属性进行一定的描述与总结,与大家分享。


1.


attention:

(1)用户物料类型只能设定一级分类,一般与物料模板结合使用 需求越高,订货间隔期越短

(2)物料的状态一般从INV设置中设定。

查看更多...

Tags: 物料的属性 物料属性

分类:企业信息化 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 20797

Oracle EBS 基本业务流程

企业管理软件,疏通流程是关键。上ERP这种大型东西,一般是借上系统信息化之名来优化企业或工厂的业务流程。不同的行业有着不同的流程,但基本运作是相通的。

下面这张图很清晰的表明了整个EBS的业务操作:




库存作业流程



物料生产计划流程

查看更多...

Tags: Oracle EBS流程

分类:企业信息化 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 13564

Oracle几个常用的伪列(Pseudo-column)使用

Oracle的Pseudo-column,常被翻译成伪列,也有人翻译成虚拟字段。常常有我们的数据操作中带来一些意想不到的效果.
常用到的主要有
sysdate, systimestamp,RowNum ,RowID, CURRVAL, NEXTVAL,UID, USER,Level,ORA_ROWSCN

1.SYSDATE, SYSTIMESTAMP,
SYSDATE 返回当前的系统时间。SYSTIMESTAMP 以TIMESTAMP WITH TIMEZONE 返回当前的日期和时间 sysdate是取机器的时间的, 而systimestamp是显示数据库的时区所在的时间

Select  SysDate from dual
获取当前服务器时间
结果: 2009-07-14 8:39:28


select  sysdate,sysdate - interval '1' MINUTE  from dual

查看更多...

分类:编程技术 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 9167

Web开发电子期刊2009年第7期(总第35期)

欢迎下载我们的Web开发技术期刊




本期共摘选文章66篇,感谢所有原创文章的作者.同时感谢所有支持本刊发展的朋友们。

下载期刊

下载文件 点击下载此文件


查看更多...

Tags: Web开发

分类:编程技术 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 4777

Oracle EBS:键盘快捷键

功能    键盘快捷键
1.        块菜单     Ctrl+B   dezai.cn
2.        清除块    F7 dezai.cn
3.        清除字段    F5
4.        清除表单    F8
5.        清除记录    F6
6.        提交    Ctrl+S
7.        计数查询    F12
8.        显示错误    Shift+Ctrl+E
9.        向下     Down(下箭头)
10.        复制字段     Shift+F5
11.        复制记录    Shift+F6
12.        编辑    Ctrl+E

查看更多...

分类:企业信息化 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 8679

《老子他说》读后感



基本信息
·出版社:复旦大学出版社
·页码:451 页
·出版日期:2005年
·ISBN:7309032381
·条形码:9787309032383
·包装版本:2
·装帧:平装
·开本:32开

查看更多...

分类:读书&想法 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 9066

Oracle学习:包

Oracle的程序包是由包头和包体组成(一般也称为程序包说明和程序包体),是一种将多个程序员模块(函数 存储过程 变量 游标等)组合起来的一个Function.
1.    与一般的程序模块的区别在于:程序包有两部分组成,包头可以将其看作一个对外的接口来使用,而包体则可以看作具体接口业务的具体实现,包体的声明部分与PL/SQL中的函数或存储过程的声明 部分差不多.但在包体中的变量、常量、游标对包用户而言是不可见的。
2.    程序包的作用:程序包就像面向对象过程的一个具体类的实现,具有结构化、重用性、模块性的特点,同时程序包中所定义的变量及常量可根据业务逻辑的需要定义为不可见或可见性,包将功能的接口与功能的实现相分离,让代码的维护更加容易,同时通过在包体中保持数据的安全防止用户直接对数据进行访问。
3.    包头(程序包说明)
包头是oracle包与应用程序的接品,用于定义包中的公有组件(变量、常量、存储过程、函数、游标等)。包头所定义的公用组件不仅可以在包内使用,也可以在其它存储过程或函数中使用权。

4.    包体(程序包体)

5.    包头的格式
Create or replace package package_name is| as
[PRAGMA SERIALLY_REUSABLE;]
公有数据类型定义
公有变量声明

查看更多...

Tags: Oracle学习:包

分类:编程技术 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 6938

Oracle包操作:增删改除查

我这是模仿一本书上来写的,编译是通过了,可不是知对不对。刚学,作个笔记吧。


create or replace package UBS_USER_PKG is


  type user_record_type is record
  (
  userID number(4),
  username varchar2(20),
  createdate date,
  deptID number(4),
  gender number(1),

查看更多...

分类:编程技术 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 5324