• 第一次写Oracle碰到的问题


       今天是第一次写Oracle的存储过程,由于新手,被一些东西纠结了一天。特此记录下,让自己以后不要在犯错了。

      1.count(*)

       第一次写Oracle的存储过程,没什么经验,就count(*)这个问题,让我正正花费了一个早上。

      example:

       CREATE OR REPLACE PROCEDURE Demo( IdentityCardNo IN VARCHAR2) as

      

          v_Count number;

      

          Begin ...

      select count(*) into v_Count from userinfo where identityCardNo(身份证)=identityCardNo 按理说,这只是个简单语句。就是看看这个身份证

    在userinfo表中是否存在值。v_Count只会是0或者1,可是输出的时候会输出500+或是5000+。直接在SQL窗口执行都没问题,但是在

    存储过程里就出现这奇怪的数字。

         解决:

          后来是发现我定义的参数名和数据库中表的字段名一样了,将定义的参数名(IdentityCardNo)成改掉就可以了。(但是还是不清楚原理是为什么?如果大家有知道原理的,请告诉下我。)

    2.Net调用问题了

       数据库中一定存在"Demo" 的存储过程,但是调用

            OracleParameter[] parameter = new OracleParameter[]{
                    new OracleParameter("Content", OracleType.Number),

           new OracleParameter("result_Num", OracleType.Number)};

        parameter[0].Value = ...;
        parameter[1].Value = ...;

        parameter[0].Direction = ParameterDirection.Input;

        parameter[1].Direction = ParameterDirection.Output;

        int rowEffect;

     DbHelperOra.RunProcedure("Demo", parameter,out rowEffect);就会出现

    ORA-06550: 第 1 行, 第 23 列:
    PLS-00222: 在此范围中不存在名为 Demo 的函数
    ORA-06550: 第 1 行, 第 7 列:
    PL/SQL: Statement ignored
    完全不明所以了,最后终于在google里找到一个方案了。原地址:http://m.blog.csdn.net/blog/mm3646/7848180
    对于存储过程中,含有输出类型的参数,如: ResultValue out number   时,在界面上 传参时,不能用   int result= DbHelperOra.RunProcedure("PRJ_PersonalLogTask_PKG.ChangeWorkTask", param,out rowEffect);     这种形式    要修改成:
          修改成:DbHelperOra.RunProcedure("Demo", parameter);
    int resuleNum=Convert.ToInt32(parameter[1].Value);
    这样就可以了。

    由于第一次写Oracle存储过程,就这两个问题真是困扰了一天,先自己记录一下,防止以后犯同样的错误。
  • 相关阅读:
    Cooling-Shrinking Attack: Blinding the Tracker with Imperceptible Noises
    QATM: Quality-Aware Template Matching For Deep Learning
    Detection in Crowded Scenes: One Proposal, Multiple Predictions
    YOLOv4: Optimal Speed and Accuracy of Object Detection
    Learning to Predict Context-adaptive Convolution for Semantic Segmentation
    Increasing Well-Being in Academia
    The Transformer Family
    Multi-task Collaborative Network for Joint Referring Expression Comprehension and Segmentation
    How NAS was improved. From days to hours in search time
    Recent Advances in Vision and Language PreTrained Models (VL-PTMs)
  • 原文地址:https://www.cnblogs.com/hualuohuakaihuamanyuan/p/3638907.html
Copyright © 2020-2023  润新知