首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

请教大家关于pl/sql存储过程的有关问题

2013-01-11 
请问大家关于pl/sql存储过程的问题??xml version1.0 encodingUTF-8?application idSP portal

请问大家关于pl/sql存储过程的问题?

<?xml version="1.0" encoding="UTF-8"?>
<application id="SP" portal="CWC">
<data-access>
 <procedure name="crosopen">
        <data-source>crdcrd</data-source>
<statement><![CDATA[ call crd_app.crd_extended_search.crd_open_orders(?,?,?,?,?,?)]]></statement>
上面的crd_app.crd_extended_search.crd_status 三个分别代表数据库,表明,存储过程名对吗?
                        <parameter-list number="6">
<param>
     <type>in</type>
     <position>1</position>
     <data-type>varchar</data-type>
     <name>custId</name>
</param>
<param>
<type>in</type>
<position>2</position>
<data-type>varchar</data-type>
<name>startDate</name>
</param>
<param>
<type>in</type>
<position>3</position>
<data-type>varchar</data-type>
<name>endDate</name>
</param>
<param>
<type>in</type>
<position>4</position>
<data-type>varchar</data-type>
<name>loc</name>
</param>
<param>
<type>in</type>
<position>5</position>
<data-type>varchar</data-type>
<name>rowCount</name>
</param>
<param>
<type>out</type>
<position>6</position>
<data-type>cursor</data-type>
</param>
</parameter-list>
         </procedure>
</data-access>
</application>
这段是项目中存储过程的xml
这里面的in和out分别代表的什么意思啊??
好像这里很关键,高手细讲啊~~


PROCEDURE crd_open_orders(
    p_cust_id           IN CRD_CUST_BILL_TO.GEAE_CUST_NUMBER%TYPE,
    p_start_date        IN VARCHAR2,
    p_end_date          IN VARCHAR2,
    p_loc               IN VARCHAR2,
    p_rownum            IN VARCHAR2,
    p_crd_open_orders   OUT result_cursor) IS
BEGIN
IF(p_loc = 'ALL') THEN
    OPEN p_crd_open_orders FOR
    SELECT *
    FROM
        (
        SELECT /*+ ORDERED */ DISTINCT
            pox.Cust_Po_Number , --1
            pox.Cust_Po_Li_Num, --2
            pox.location_id, --3
            col.Co_Number , --4
            col.Co_Li_Num , --5


            SUBSTR(col.Part_Number,1,10) PART , --6
            col.Eng_Mdl_Number , --7
            emd.ENG_MDL_DESC , --8
            col.Cmpnt_Cd, --9
            cc.Cmpnt_Desc , --10
            col.REF_ID , --11
            NVL(col.CREATE_DATE,TO_DATE('01/01/1900','DD/MM/YYYY')),
            --TO_CHAR(col.CREATE_DATE, 'DD-MON-YYYY') , --12
            col.PART_QTY , --13
            so.Intell_So_Number , --14
            so.BAL_DUE_QTY , --15
            decode(substr(to_char(clr.schd_dlvry_date , 'mm/dd/yyyy'), 7 ,4) ,
                        '2100' , 'ON HOLD' ,
                        '2222' ,   'ON HOLD' ,
                        '3100' ,  'ON HOLD' ,
                        '3200' ,  'ON HOLD' ,
                        '3333' ,  'ON HOLD' ,
                        '3400' ,  'ON HOLD' ,
                        '4000' ,  'ON HOLD' ,
                        '4100' , 'ON HOLD' ,
                        '4200' ,  'ON HOLD' ,
                        '4300' ,  'ON HOLD' ,
                        '4444' ,  'ON HOLD' ,
            to_char(clr.schd_dlvry_date , 'DD MON YYYY'))
            Scheduled_date, --16
            nvl(to_char(clr.rlse_qty), '  ') Scheduled_Qty, --17
            col.CREATE_DATE, --18


            --to_date(col.create_date ), --19
            decode(substr(to_char(clr.schd_dlvry_date , 'mm/dd/yyyy'), 7 ,4) ,
                        '2100' , 'Staged for Kitting' ,
                        '2222' ,   'GE Quote Process' ,
                        '3100' ,  'Departure Record ApprovalD' ,
                        '3200' ,  'Workscope Clarification (Customer)' ,
                        '3333' ,  'Customer Quote Approval' ,
                        '3400' ,  'Military Hardware in Property Crib' ,
                        '4000' ,  'On Hold (other)' ,
                        '4100' , 'Credit Hold' ,
                        '4200' ,  'Departure Record Approval' ,
                        '4300' ,  'Salvation Review' ,
                        '4444' ,  'Repair Development' ,
                         '        ' ) Reasondescr,  --20
             cbt.GEAE_CUST_NUMBER --21
        FROM
            --crd_cust cus,
            crd_cust_bill_to        cbt,
            crd_so                  so,
            crd_co_li               col,
            crd_co_li_rlse_schd     clr,
            crd_po_li_ordcmpnt_xref pox,
            crd_eng_mdl             emd,


            crd_cmpnt_code          cc
        WHERE
                cbt.siebel_uri         = p_cust_id
            --AND cbt.cust_id_num = cus.cust_id_num
            --AND cbt.location_id = cus.location_id
            AND so.bill_to_seq_num     = cbt.bill_to_seq_num
            AND so.cust_id_num         = cbt.cust_id_num
            AND so.location_id         = cbt.location_id
            AND col.co_number          = so.asm_co_number
            AND col.co_li_num          = so.asm_co_li_num
            AND col.amdmt_num          = so.asm_co_amdmt_num
            AND col.location_id        = so.location_id
            AND clr.co_number       (+)= col.co_number
            AND clr.co_li_num       (+)= col.co_li_num
            AND clr.amdmt_num       (+)= col.amdmt_num
            AND clr.location_id     (+)= col.location_id
            AND pox.ord_cmpnt_id       = col.ref_id
            AND pox.ord_cmpnt_amdmt_num = col.amdmt_num
            AND pox.location_id        = col.location_id
            AND emd.eng_mdl_number     = col.eng_mdl_number
            AND cc.cmpnt_cd         (+)= col.cmpnt_cd
            AND cc.eng_mdl_number   (+)= col.eng_mdl_number
            AND cc.location_id      (+)= col.location_id
            AND cc.cmpnt_cls_cd     (+)= 'M'
            AND cc.org_id_num       (+)= col.org_id_num--12
            AND pox.Cust_Po_Number  <> ' '


            AND pox.Cust_Po_Li_Num  > 0
            AND pox.ord_cmpnt_cd    = 'L'
            AND pox.Po_Li_Ord_Cmpnt_Xref_Sts_Cd || '' = 'A'
            AND clr.Rlse_Sts_Cd_Num (+)= 5
            AND col.create_date     >= p_start_date
            AND col.create_date     <= p_end_date
            AND so.bal_due_qty      > 0
            --AND so.so_sts_cd <> 65
            AND so.Amdmt_Sts_Cd     (+)= 'A'
        )
    WHERE
        ROWNUM <= p_rownum;
    WHERE
        ROWNUM <= p_rownum;
END IF;
//这里代表的是一段存储过程


我想问的是,这两段代码,一个是xml,一个是oracle里面的存储过程,这两个结合起来怎么看呢?第一次接触,这个项目还是用的连接池把好几个数据流连接起来的。
在我们java的dao里面还是要执行以下xml中的方法的


java代码中怎么执行上面的存储方法,有一个excute方法好像。






[解决办法]
不是的,应该是包名,就像java中一样的。
[解决办法]
应该是用java代码解析xml,获取对应的存储过程和参数之后,放入运行系统的数据库操作。
有点动态配置的感觉。

[解决办法]
应该是in和out分别代表入参和出参,<position>是第几个参数,<data-type>参数类型,五个入参一个出参,crd_app.crd_extended_search.crd_open_orders应该是数据库名.包名.方法名
[解决办法]
引用:
应该是in和out分别代表入参和出参,<position>是第几个参数,<data-type>参数类型,五个入参一个出参,crd_app.crd_extended_search.crd_open_orders应该是数据库名.包名.方法名


正解~~~~

热点排行