DECODE/INSTR based on QUERY for SUBSTRING

I am trying to write a function that can take a STRING and perform a DECODE on it by doing an INSTR for a value from a TABLE.
MYTABLE
VALUES               
22XXXXXMNTSTT_       
72XXXXXMNTSTT_       
26XXXXXMNTSTT_       
22XXXXXMNTHRSG       
32XXXXXMNTHRSG       
62XXXXXMNTBC__  
DECODE_LIST_TABLE    
SEARCH_VAL    TRANSLATE
MNTHRSG        306    
MNTBC            336     
MNTSTT            393   
MNTWTR            364 
I WANT BACK          
393
393
393
306
336
TRYING:
SELECT VALUES, INSTR( VALUES, SELECT SEARCH_VAL FROM DECODE_LIST_TABLE)>0  THEN ( SELECT TRANSLATE  FROM DECODE_LIST_TABLE WHERE ???????? )          
FROM MYTABLENot sure how to finish the WHERE and if this is even doable with the approach I am taking?
ANy help, greatly appreciated.
Miller

this?
SQL> ed
Wrote file afiedt.buf
  1  WITH my_tab AS
  2    (SELECT  '72XXXXXMNTSTT_' val FROM dual
  3     UNION ALL
  4    SELECT   '26XXXXXMNTSTT_ '  FROM dual
  5     UNION ALL
  6    SELECT    '22XXXXXMNTHRSG '   FROM dual),
  7   list_tab AS
  8      (SELECT 'MNTHRSG' s_val, 306 tr  FROM dual
  9     UNION ALL
10    SELECT  'MNTBC',  336   FROM dual
11     UNION ALL
12    SELECT  'MNTWTR', 364    FROM dual
13    UNION ALL
14    SELECT  'MNTSTT', 393   FROM dual)
15  -------- end you data<<<<<<<<<<<<<<<<<<<------ ignore with clause that for sample data
16  SELECT val,tr FROM my_tab,list_tab
17* WHERE INSTR(val,s_val)>0
SQL> /
VAL                     TR
22XXXXXMNTHRSG         306
72XXXXXMNTSTT_         393
26XXXXXMNTSTT_         393format
Message was edited by:
devmiral

Similar Messages

  • Problem writing a sql query for a select list based on a static LOV

    Hi,
    I have the following table...
    VALIDATIONS
    ID          Number     (PK)
    APP_ID          Number     
    REQUESTED     Date          
    APPROVED     Date          
    VALID_TIL     Date
    DEPT_ID          Number     (FK)
    I have a search form with the following field item variables...
    P11_DEPT_ID (select list based on dynamic LOV from depts table)
    P11_VALID (select list based on static Yes/No LOV)
    A report on the columns of the Validations table is shown based on the values in the search form. So far, my sql query for the report is...
    SELECT v.APP_ID,
    v.REQUESTED,
    v.APPROVED,
    v.VALID_TIL,
    d.DEPT
    FROM DEPTS d, VALIDATIONS v
    WHERE d.DEPT_ID = v.DEPT_ID(+)
    AND (d.DEPT_ID = :P11_DEPT_ID OR :P11_DEPT_ID = -1)
    This query works so far. My problem is that I don't know how to do a search based on the P11_VALID item - if 'yes' is selected, then the VALID_TIL date is still valid. If 'no' is selected then the VALID_TIL date has passed.
    Can anyone help me to extend my query to include this situation?
    Thanks.

    Hello !
    Let's have a look at my example:create table test
    id        number
    ,valid_til date
    insert into test values( 1, sysdate-3 );
    insert into test values( 2, sysdate-2 );
    insert into test values( 3, sysdate-1 );
    insert into test values( 4, sysdate );
    insert into test values( 5, sysdate+1 );
    insert into test values( 6, sysdate+2 );
    commit;
    select * from test;
    def til=yes
    select *
      from test
      where decode(sign(trunc(valid_til)-trunc(sysdate)),1,1,0,1,-1)
           =decode('&til','yes',1,-1);
    def til=no
    select *                                                                               
      from test                                                                            
      where decode(sign(trunc(valid_til)-trunc(sysdate)),1,1,0,1,-1)
           =decode('&til','yes',1,-1);  
    drop table test;  It's working fine, I've tested it.
    The above changes to my first idea I did because of time portion of the DATE datatype in Oracle and therefore the wrong result for today.
    For understandings:
    1.) TRUNC removes the time part of DATE
    2.) The difference of to date-values is the number of days between.
    3.) SIGN is the mathematical function and gives -1,0 or +1 according to an negative, zero or positiv argument.
    4.) DECODE is like an IF.
    Inspect your LOV for the returning values. According to my example they shoul be 'yes' and 'no'. If your values are different, you may have to modify the DECODE.
    Good luck,
    Heinz

  • Print layout designer for develop report based on query

    Dear Experts/Gurus,
    I am amazing about the manage previous reconciliation report. When I opened it using print layout designer, it looks like the report is not built using query, but I am not sure yet. This is very confusing. I created query similar with manage previous reconciliation (MPR), but when I link the query to print layout and try to make similar format/appearance with MPR report (reconciliation management (system)), it is not success.
    Isn't the MPR report built not based on query ? I appreciate your answer. TIA
    Rgds,

    Hi,
    I am not sure I understand what's the problem:
    Is it the layout that is different or the data?
    Regarding the data you can use SQL Profiler (maybe you did?) to find out what queries are fired, but please note that there are some stored procedures in the DB that are used for some specific functions - not sure whether the "MPR" uses any of these.
    Then you must include some non-default filter in SQL Profiler...
    ...but you can also use the logging functionality in B1 for that purpose:
    Just activate the logging (see the "log" folder in the B1 subdirectory) in the corresponding config file: choose the option to have the SQLs logged in conjunction with the logging being triggered in all cases (not just error).
    Thus you will get all the SQLs - just plain - from the B1 application, but note that it will obviously slow it down!
    HTH,
    Frank

  • Query Based Approval Procedure for Sales order .

    Hi 
    I have created query for SO which results above 5000 d 50,000 .
    By using this each query i created two seperate Approval Procedures which So is >5000 d >50000.
    If So>5000 Approval Procedure wants to activate same thing for >50,000., Bur approval Procedure is not working wat will be the cause. i have linked this query In Terms as when the following applies.
    If SO >5000 approved by user A.
    If SO>50,000approved by User A & B.
    Regards
    Giridharan

    Hi Giri
    Your query for the first should be as follows:
    SELECT DISTINCT TRUE
    WHERE $[$29.0.NUMBER] > 5000 AND $[$29.0.NUMBER] < 50000
    For the second query:
    SELECT DISTINCT TRUE
    WHERE $[$29.0.NUMBER] > 50000
    The query you were trying to use is looking at the table which will only apply to documents already posted, and as that query is not being filtered specifically it is bringing back all the records and getting confused. You must reference to the runtime value of the document being posted.
    Kind regards
    Peter Juby

  • QLD -query based customised report for customer aging

    Hello Expert,
    I want to write a query for the QLD  and this report is a customised report for customer statement-aging
    Requirements
    1. The QLD report  query should have selection criteria Posting date range[user must input]
    2. The QLD report  query should have also another selection critreria Customer code[If user input it then report must display details for only that particular customer, if it is blank i mean not inputed by user then this report should display details of all customers with page break., I mean start with first customer.. show details and page break  start second customer show all details  and so on
    Let us sec the QLD details                                                                               
    at the header Level customer detals name/address/balances(3429.4) etc
    Code|| Name||Doc Type || Doc number||Posting date||Debt Amount||Credit Amount||
    C00001  || ABC LtdII AR Inv     || 12/01/2011||12000|| 0
    C00001  || ABC Ltd|| AR Memo|| 12/15/2011||0        || 5600
    C00001  || ABC Ltd|| Incoming || 12/15/2011||0        || 4000
    C00001  || ABC Ltd|| OTHER   || 12/20/2011||1000  || 0
    Summary
    Balance||        0-30         ||  31-60         || 61-90||          91-120          || 121+
    3429.4     3400     200     300     -300     -170.6
    100%     99.14%     5.88%     8.75%     -8.75%     -5%
    Page Break
    at the header Level customer detals name/address/balances(969.4) etc
    Code|| Name||Doc Type || Doc number||Posting date||Debt Amount||Credit Amount||
    C00002  || ABC LtdII AR Inv     || 12/01/2011||15000|| 0
    C00002  || ABC Ltd|| AR Memo|| 12/15/2011||0        || 3600
    C00002  || ABC Ltd|| Incoming || 12/15/2011||0        || 3000
    C00002  || ABC Ltd|| OTHER   || 12/20/2011||5000  || 0
    Summary
    Balance||        0-30         ||  31-60         || 61-90||          91-120          || 121+
    969.4     1440     500     -500     -300     -170.6
    100%     148.55%     51.58%     -51.58%     -30.95%     17.6%
    and so on
    Note #1 If the balances for a customer is zero then I should not be the part of the report
    Note #2 In the existing report system is showing summary  details only for the date range , but here I am looking for all dates
    Thanks
    Arun K Singh

    Hi Arun,
    Try this...
    SELECT T1.CardCode, T1.CardName, T1.CreditLine, T0.RefDate, T0.Ref1 'Document Number',
         CASE  WHEN T0.TransType=13 THEN 'Invoice'
              WHEN T0.TransType=14 THEN 'Credit Note'
              WHEN T0.TransType=30 THEN 'Journal'
              WHEN T0.TransType=24 THEN 'Receipt'
              END AS 'Document Type',
         T0.DueDate, (T0.Debit- T0.Credit) 'Balance'
         ,ISNULL((SELECT T0.Debit-T0.Credit WHERE DateDiff(day, T0.DueDate,'[%1]')<=-1),0) 'Future'
         ,ISNULL((SELECT T0.Debit-T0.Credit WHERE DateDiff(day, T0.DueDate,'[%1]')>=0 and DateDiff(day, T0.DueDate,'[%1]')<=30),0) 'Current'
         ,ISNULL((SELECT T0.Debit-T0.Credit WHERE DateDiff(day, T0.DueDate,'[%1]')>30 and DateDiff(day, T0.DueDate,'[%1]')<=60),0) '31-60 Days'
         ,ISNULL((SELECT T0.Debit-T0.Credit WHERE DateDiff(day, T0.DueDate,'[%1]')>60 and DateDiff(day, T0.DueDate,'[%1]')<=90),0) '61-90 Days'
         ,ISNULL((SELECT T0.Debit-T0.Credit WHERE DateDiff(day, T0.DueDate,'[%1]')>90 and DateDiff(day, T0.DueDate,'[%1]')<=120),0) '91-120 Days'
         ,ISNULL((SELECT T0.Debit-T0.Credit WHERE DateDiff(day, T0.DueDate,'[%1]')>=121),0) '121+ Days'
    FROM JDT1 T0 INNER JOIN OCRD T1 ON T0.ShortName = T1.CardCode
    WHERE (t0.BalDueCred !=0 or T0.BalDueDeb != 0) AND T0.RefDate <= [%1] AND T1.CardType = 'C' and T0.TransType in ('13','14','30','24')
    ORDER BY T1.CardCode, T0.DueDate, T0.Ref1
    Thanks,
    Srujal Patel

  • Need help in fixing the query for performance reasons

    hi
    I have a view in which I am calling a function to return some values I wand to get rid of the function and want to some how do all in the sql. Can I use case or something similar that will help me in avoiding the use of this function. Any help in this regard will highly be appreciated.
    Query
    SELECT SUBSTR(f_type_px17(ap.cidn,ap.currentstatusoid, 'DESC'), 1, 255)
                        from
                             px17_appointment ap,
                             /*context co_ap,*/
                             px17_payrollagreement pa,
                             px17_payrollgroup pg;
    FUNCTION
    CREATE OR REPLACE FUNCTION f_type_px17
    fv_cidn IN px17_type_client.cidn%TYPE,
    fv_oid IN px17_type_client.oid%TYPE,
    fv_col IN VARCHAR2 DEFAULT NULL
    ) RETURN VARCHAR2 AUTHID CURRENT_USER AS
    v_rtn_name px17_type_client.name%TYPE := NULL ;
    v_rtn_desc px17_type_client.description%TYPE := NULL ;
    BEGIN
    IF fv_oid IS NOT NULL THEN
    BEGIN
    IF UPPER(SUBSTR(fv_oid,1,3)) = 'SYS' THEN
    SELECT name, description
    INTO v_rtn_name, v_rtn_desc
    FROM px17_sys_type
    WHERE oid = fv_oid
    AND ROWNUM = 1 ;
    ELSE
    SELECT name, description
    INTO v_rtn_name, v_rtn_desc
    FROM px17_type_client
    WHERE oid = fv_oid
         AND cidn = fv_cidn
    AND ROWNUM = 1 ;
    END IF ;
    EXCEPTION
    WHEN no_data_found THEN
    v_rtn_name := NULL ;
    v_rtn_desc := NULL ;
    END ;
    END IF ;
    IF (UPPER(NVL(fv_col, '~')) = 'NAME') THEN
    RETURN v_rtn_name ;
    ELSIF ((UPPER(NVL(fv_col, '~')) = 'DESC')
    OR (UPPER(NVL(fv_col, '~')) = 'DESCRIPTION')) THEN
    RETURN v_rtn_desc ;
    ELSE
    RETURN (NVL(v_rtn_name, CHR(155)) || '~' || NVL(v_rtn_desc, CHR(155))) ;
    END IF ;
    END f_type_px17 ;
    /

    Well following is the whole code of a view and the functions releated, This will give you the whole picture and this query is running for long time.
    create or replace view PX17_CHK_VW_SUMMARY_VW
    (CIDN,BATCH_NUMBER, BUSINESS_UNIT, CHECK_VOUCHER_NUMBER, CHECK_VOUCHER_CODE, CHECKVIEW_CLOCK_NUMBER,
    COMPANY_CHECKVIEW_HOME_DEPT, PERIOD_END_DATE, FEDERAL_TAX, GROSS_PAY, HOME_DEPARTMENT,
    HOME_DEPARTMENT_DESC, LIVED_LOCAL_TAX_CODE, LIVED_STATE_TAX_CODE, LIVED_LOCAL_TAX, LIVED_STATE_TAX,
    MEDICARE_TAX, NET_PAY, DEPARTMENT_WORKED_IN, PAY_TO_COMPANY_INDICATOR, PAY_DATE,
    PAYROLL_NUMBER, SCHOOL_DISTRICT_TAX, CHECKVIEW_SCHOOL_DISTRICT, SOCIAL_SECURITY_TAX, SUI_SDI_TAX,
    SUI_SDI_TAX_CODE, VOID_CHECK_INDICATOR, WEEK_NUMBER, WORKED_LOCAL_TAX_CODE, WORKED_STATE_TAX_CODE,
    WORKED_LOCAL_TAX, WORKED_STATE_TAX, YEAR, COMPANY_CODE, FILE_NUMBER,
    FIRST_NAME, LAST_NAME, LAST_NAME_FIRST_NAME, SOCIAL_SECURITY_NUMBER, STATUS,
    OVERTIME_EARNINGS, OVERTIME_HOURS, REGULAR_EARNINGS, REGULAR_HOURS, VIEWPK,
    HOME_COST_NUMBER, TAX_FREQUENCY, COMPANY_COST_NUMBER, COST_NUMBER_WORKED_IN, DISTRIBUTION_NUMBER,
    TOTAL_DEDUCTIONS_AMOUNT, TOTAL_HOURS_AMOUNT, TOTAL_MEMO_AMOUNT, TOTAL_OTHER_EARNINGS, TOTAL_OTHER_HOURS,
    CHECK_SEQ_NO, JOINKEY, CHECK_REVERSAL_INDICATOR
    as
    with user_security_homedept
    AS
    (select /*+ INLINE */ distinct cg.cidn,co_code,asso.oid,asso.name,department_Access ,t2.column_value dep,cg.oid
    from px17_cocodegroup cg ,
    px17_associate asso ,
         px17_securityobject so,
         px17_cocodegrp_securitygrp cs,
         px17_security_group sg ,
         TABLE(f_str2tbl_px17(cg.department_access)) t2
    where cg.USEROID = asso.OID
    and cg.co_code = substr(so.name,8,3)
    and upper(asso.name) = upper(sys_context('payx_r17_app_context', 'app_userid'))
    and cg.oid = cs.cocodegroupoid
    and cs.securitygroupoid = sg.oid
         and cg.cidn = asso.cidn
         and cg.cidn = so.cidn
         and cg.cidn = cs.cidn
         and cs.cidn = sg.cidn
    order by 2,1
    user_security_cost_no
    AS
    (select /*+ INLINE */
    cg.cidn,co_code,count(distinct cd.code)cost_no,cd.code
    from px17_cocodegroup cg ,
    px17_associate asso ,
         px17_securityobject so,
         px17_cocodegrp_securitygrp cs,
         px17_security_group sg ,
         px17_customaccessdetail cd
    where cg.USEROID = asso.OID
    and cg.co_code = substr(so.name,8,3)
    and upper(asso.name) = upper(sys_context('payx_r17_app_context', 'app_userid'))
    and cg.oid = cs.cocodegroupoid
    and cs.securitygroupoid = sg.oid
    and cg.oid = cd.cocodegroupoid(+)
         and cg.cidn = cd.cidn(+)
         and cg.cidn = asso.cidn
         and cg.cidn = so.cidn
         and cg.cidn = cs.cidn
         and cs.cidn = sg.cidn
    group by cg.cidn,co_code,cd.code
    order by 2,1
    super_user_check as
    (SELECT
    distinct a.cidn su_cidn,1 as su_user
    FROM
    px17_LINK LN
    , px17_userprofile up
    , px17_ASSOCIATE a
    , px17_pcp_user pu
    WHERE
    a.oid = pu.oid
    AND pu.userprofileoid = up.oid
    AND LN.parentoid = up.oid
    AND a.active = 1
    AND a.cidn=pu.cidn
    AND pu.cidn=up.cidn
    AND ln.cidn=up.cidn
    AND upper(a.name) = upper(sys_context('payx_r17_app_context', 'app_userid'))
    AND upper(up.name) = upper('Super user')
    nonsuper_user_check as
    SELECT distinct a.cidn s_cidn , 1 as non_user
    FROM
    px17_LINK LN
    , px17_userprofile up
    , px17_ASSOCIATE a
    , px17_pcp_user pu
    WHERE
    a.oid = pu.oid
    AND pu.userprofileoid = up.oid
    AND LN.parentoid = up.oid
    AND a.active = 1
    AND a.cidn=pu.cidn
    AND pu.cidn=up.cidn
    AND ln.cidn=up.cidn
    AND upper(a.name) = upper(sys_context('payx_r17_app_context', 'app_userid'))
         AND LN.childoid IN ( 'SYS:5:7478')
    SELECT distinct
    cidn
         ,batch_number     Batch_Number
         , business_unit     Business_Unit
         , check_voucher_number     Check_Voucher_Number
         , check_voucher_code     Check_Voucher_Code
         , clock_number     CheckView_Clock_Number
         , company_code_or_dept     Company_CheckView_Home_Dept
         , period_end_date     Period_End_Date
         , TO_NUMBER(REPLACE(SUBSTR(taxes_and_rates, 1, (INSTR(taxes_and_rates, '~', 1, 1) -1)), CHR(155), NULL))     Federal_Tax
         , gross_pay     Gross_Pay
         , home_department     Home_Department
         , home_department_descr     Home_Department_Desc
         , SUBSTR(REPLACE(SUBSTR(taxes_and_rates, (INSTR(taxes_and_rates, '~', 1, 1) +1)
                   , INSTR(taxes_and_rates, '~', 1, 2) - (INSTR(taxes_and_rates, '~', 1, 1) +1)), CHR(155), NULL), 1, 32)     Lived_Local_Tax_Code
         , SUBSTR(REPLACE(SUBSTR(taxes_and_rates, (INSTR(taxes_and_rates, '~', 1, 2) +1)
                   , INSTR(taxes_and_rates, '~', 1, 3) - (INSTR(taxes_and_rates, '~', 1, 2) +1)), CHR(155), NULL), 1, 32)     Lived_State_Tax_Code
         , TO_NUMBER(REPLACE(SUBSTR(taxes_and_rates, (INSTR(taxes_and_rates, '~', 1, 3) +1)
                   , INSTR(taxes_and_rates, '~', 1, 4) - (INSTR(taxes_and_rates, '~', 1, 3) +1)), CHR(155), NULL))     Lived_Local_Tax
         , TO_NUMBER(REPLACE(SUBSTR(taxes_and_rates, (INSTR(taxes_and_rates, '~', 1, 4) +1)
                   , INSTR(taxes_and_rates, '~', 1, 5) - (INSTR(taxes_and_rates, '~', 1, 4) +1)), CHR(155), NULL))     Lived_State_Tax
         , TO_NUMBER(REPLACE(SUBSTR(taxes_and_rates, (INSTR(taxes_and_rates, '~', 1, 5) +1)
                   , INSTR(taxes_and_rates, '~', 1, 6) - (INSTR(taxes_and_rates, '~', 1, 5) +1)), CHR(155), NULL))     Medicare_Tax
         , net_pay     Net_Pay
         , department_paid     Department_Worked_In
         , to_pay_indicator     Pay_to_Company_Indicator
         , pay_date     Pay_Date
         , payroll_number     Payroll_Number
         , TO_NUMBER(REPLACE(SUBSTR(taxes_and_rates, (INSTR(taxes_and_rates, '~', 1, 6) +1)
                   , INSTR(taxes_and_rates, '~', 1, 7) - (INSTR(taxes_and_rates, '~', 1, 6) +1)), CHR(155), NULL))     School_District_Tax
         , SUBSTR(REPLACE(SUBSTR(taxes_and_rates, (INSTR(taxes_and_rates, '~', 1, 7) +1)
                   , INSTR(taxes_and_rates, '~', 1, 8) - (INSTR(taxes_and_rates, '~', 1, 7) +1)), CHR(155), NULL), 1, 32) CheckView_School_District
         , TO_NUMBER(REPLACE(SUBSTR(taxes_and_rates, (INSTR(taxes_and_rates, '~', 1, 8) +1)
                   , INSTR(taxes_and_rates, '~', 1, 9) - (INSTR(taxes_and_rates, '~', 1, 8) +1)), CHR(155), NULL))     Social_Security_Tax
         , TO_NUMBER(REPLACE(SUBSTR(taxes_and_rates, (INSTR(taxes_and_rates, '~', 1, 9) +1)
                   , INSTR(taxes_and_rates, '~', 1, 10) - (INSTR(taxes_and_rates, '~', 1, 9) +1)), CHR(155), NULL))     SUI_SDI_Tax
         , SUBSTR(REPLACE(SUBSTR(taxes_and_rates, (INSTR(taxes_and_rates, '~', 1, 10) +1)
                   , INSTR(taxes_and_rates, '~', 1, 11) - (INSTR(taxes_and_rates, '~', 1, 10) +1)), CHR(155), NULL), 1, 32) SUI_SDI_Tax_Code
         , void_check_indicator     Void_Check_Indicator
         , week_number     Week_Number
         , SUBSTR(REPLACE(SUBSTR(taxes_and_rates, (INSTR(taxes_and_rates, '~', 1, 11) +1)
                   , INSTR(taxes_and_rates, '~', 1, 12) - (INSTR(taxes_and_rates, '~', 1, 11) +1)), CHR(155), NULL), 1, 32) Worked_Local_Tax_Code
         , SUBSTR(REPLACE(SUBSTR(taxes_and_rates, (INSTR(taxes_and_rates, '~', 1, 12) +1)
                   , INSTR(taxes_and_rates, '~', 1, 13) - (INSTR(taxes_and_rates, '~', 1, 12) +1)), CHR(155), NULL), 1, 32) Worked_State_Tax_Code
         , TO_NUMBER(REPLACE(SUBSTR(taxes_and_rates, (INSTR(taxes_and_rates, '~', 1, 13) +1)
                   , INSTR(taxes_and_rates, '~', 1, 14) - (INSTR(taxes_and_rates, '~', 1, 13) +1)), CHR(155), NULL))     Worked_Local_Tax
         , TO_NUMBER(REPLACE(SUBSTR(taxes_and_rates, (INSTR(taxes_and_rates, '~', 1, 14) +1)
                   , INSTR(taxes_and_rates, '~', 1, 15) - (INSTR(taxes_and_rates, '~', 1, 14) +1)), CHR(155), NULL))     Worked_State_Tax
         , year          Year
         , company_code     Company_Code
         , file_number     File_Number
         , first_name     First_Name
         , last_name          Last_Name
         , name          Last_Name_First_Name
         , ssn               Social_Security_Number
         , status          Status
         , TO_NUMBER(REPLACE(SUBSTR(taxes_and_rates, (INSTR(taxes_and_rates, '~', 1, 15) +1)
                   , INSTR(taxes_and_rates, '~', 1, 16) - (INSTR(taxes_and_rates, '~', 1, 15) +1)), CHR(155), NULL))     Overtime_Earnings
         , TO_NUMBER(REPLACE(SUBSTR(taxes_and_rates, (INSTR(taxes_and_rates, '~', 1, 16) +1)
                   , INSTR(taxes_and_rates, '~', 1, 17) - (INSTR(taxes_and_rates, '~', 1, 16) +1)), CHR(155), NULL))     Overtime_Hours
         , TO_NUMBER(REPLACE(SUBSTR(taxes_and_rates, (INSTR(taxes_and_rates, '~', 1, 17) +1)
                   , INSTR(taxes_and_rates, '~', 1, 18) - (INSTR(taxes_and_rates, '~', 1, 17) +1)), CHR(155), NULL))     Regular_Earnings
         , TO_NUMBER(REPLACE(SUBSTR(taxes_and_rates, (INSTR(taxes_and_rates, '~', 1, 18) +1)
                   , INSTR(taxes_and_rates, '~', 1, 19) - (INSTR(taxes_and_rates, '~', 1, 18) +1)), CHR(155), NULL))     Regular_Hours
         , (company_code || '/' || ssn || '/' || file_number || '/' || TO_CHAR(payroll_number) || '/'
              || TO_CHAR(year) || '/' || TO_CHAR(week_number) || '/' || check_voucher_number
              || '/' || to_char(check_seq_num) || '/' || TO_CHAR(distribution_number)) Viewpk
         , home_costnumber_desc Home_Cost_Number
         , tax_frequency Tax_Frequency
         , co_chkv_home_cost_no Company_Cost_Number
         , cost_no_worked_in Cost_Number_Worked_In
         , distribution_number Distribution_Number
         , TO_NUMBER(REPLACE(SUBSTR(taxes_and_rates, (INSTR(taxes_and_rates, '~', 1, 19) +1)
                   , INSTR(taxes_and_rates, '~', 1, 20) - (INSTR(taxes_and_rates, '~', 1, 19) +1)), CHR(155), NULL))     Total_Deductions_Amount
         , NVL(TO_NUMBER(REPLACE(SUBSTR(taxes_and_rates, (INSTR(taxes_and_rates, '~', 1, 20) +1)
                   , INSTR(taxes_and_rates, '~', 1, 21) - (INSTR(taxes_and_rates, '~', 1, 20) +1)), CHR(155), NULL)), 0) Total_Hours_Amount
         , NVL(TO_NUMBER(REPLACE(SUBSTR(taxes_and_rates, (INSTR(taxes_and_rates, '~', 1, 21) +1)
                   , INSTR(taxes_and_rates, '~', 1, 22) - (INSTR(taxes_and_rates, '~', 1, 21) +1)), CHR(155), NULL)), 0) Total_Memo_Amount
         , NVL(TO_NUMBER(REPLACE(SUBSTR(taxes_and_rates, (INSTR(taxes_and_rates, '~', 1, 22) +1)
                   , INSTR(taxes_and_rates, '~', 1, 23) - (INSTR(taxes_and_rates, '~', 1, 22) +1)), CHR(155), NULL)), 0) Total_Other_Earnings
         , TO_NUMBER(REPLACE(SUBSTR(taxes_and_rates, (INSTR(taxes_and_rates, '~', 1, 23) +1)), CHR(155), NULL))     Total_Other_Hours
         , check_seq_num Check_Seq_No
         , (NVL(company_code, '~') || CHR(155) || NVL(file_number, '~') || CHR(155) || NVL(ssn, '~') || CHR(155) || NVL(TO_CHAR(year), '~') || CHR(155)
              || NVL(TO_CHAR(week_number), '~') || CHR(155) || NVL(TO_CHAR(payroll_number), '~')
              || CHR(155) || NVL(check_voucher_number, '~') || CHR(155) || NVL(TO_CHAR(check_seq_num), '~') || CHR(155) || NVL(TO_CHAR(distribution_number), '~')) Joinkey
         , chk_reverse Check_Reversal_Indicator
    FROM
              SELECT
              ch.cidn cidn
                   /*BATCH NUMBER*/
                   , ch.batch_nb     batch_number
                   , /*BUSINESS UNIT*/
                   (select asso.description
                        from     px17_appointment ap,
                             px17_jobposition jp,
                             px17_corporation co,
                             px17_associate asso,
                             px17_payrollagreement pa,
                             px17_payrollgroup pg
                        where
                        ch.cidn = pg.cidn
                                       AND ch.cidn = pa.cidn
                                       AND pa.cidn = pg.cidn
                                       AND pa.cidn = ap.cidn
                                       AND em.cidn = ap.cidn
                                       AND ap.cidn = jp.cidn
                                       and jp.cidn = co.cidn
                                       and co.cidn = asso.cidn
                        and ch.co_code=pg.co_code
                        and     ch.file_nb=pa.file_number
                        and     pa.cocodeoid=pg.oid
                        and     pa.appointmentoid=ap.oid
                        and     em.oid=ap.employmentoid
                        and     ap.jobpositionoid=jp.oid
                             and     jp.corporationoid=co.oid
                        and     co.oid=asso.oid)     business_unit
                   , /*CHECK/VOUCHER NUMBER*/
                   ch.check_nb     check_voucher_number
                   , /*CHECK/VOUCHER CODE*/
                   SUBSTR(f_type_px17(ch.cidn,ch.chkvchcodeoid, 'NAME'), 1, 255) check_voucher_code
                   , /*CLOCK NUMBER*/
                   ch.clock_id     clock_number
                   , /* COMPANY CODE OR DEPT*/
                   ch.co_code||'/'||substr(ch.home_dept_code,1,20)     company_code_or_dept
                   , /*PERIOD END DATE*/
                   ch.payroll_ending_date     period_end_date
                   , /*GROSS PAY*/
                   NVL(chd.gross_pay_amt,0)     gross_pay
                   , /*HOME DEPARTMENT*/
                   ch.home_dept_code     home_department
                   , /*HOME DEPARTMENT DESCRIPTION*/
                   (select     ty.description
                        from     px17_type ty,px17_securityobject sc
                        where
                        ch.cidn = sc.cidn     
                        and ty.cidn in ('COMMON', ch.cidn)
                        and ch.home_dept_code=ty.name
                        and     ty.category='T_CO_DEPT'
                        and      ty.securityoid=sc.oid
                        and     ch.co_code=substr(sc.name,8))     home_department_descr
                   , /*NET PAY*/
                   nvl(chd.net_pay_amt,0)     net_pay
                   , /*DEPARTMENT PAID*/
                   -- ch.paid_in_debt_code     department_paid
                   chd.worked_in_dept     department_paid
                   , /*TO PAY INDICATOR*/
                   decode(to_char(ch.pay_to_co),'1','Y','0','N',to_char(ch.pay_to_co))     to_pay_indicator
                   , /*PAY DATE*/
                   ch.pay_date     pay_date
                   , /*PAYROLL NUMBER*/
                   to_char(ch.payroll_nb)     payroll_number
                   , /*VOID CHECK INDICATOR*/
                   decode(to_char(ch.void_flag),'1','Y','0','N',to_char(ch.void_flag))     void_check_indicator
                   , /*WEEK NUMBER*/
                   TO_number(ch.week)     week_number
                   , /*YEAR*/
                        to_char(ch.year)     year
                   , /*COMPANY CODE*/
                   ch.co_code     company_code
                   , /*FILE NUMBER*/
                   LPAD(ch.file_nb,6,0)     file_number
                   , /*FIRST NAME*/
                   pe.first_name     first_name
                   , /*LAST NAME*/
                   pe.last_name     last_name
                   , /*NAME*/
                   pe.last_name||', '||pe.first_name     name
                   , /*SSN*/
                   payx_r17_principal_info.masked_ssn(pe.unique_id, ch.cidn)      ssn
                   , /*STATUS*/
                   (SELECT SUBSTR(f_type_px17(ap.cidn,ap.currentstatusoid, 'DESC'), 1, 255)
                        from
                             px17_appointment ap,
                             /*context co_ap,*/
                             px17_payrollagreement pa,
                             px17_payrollgroup pg
                        where     
                        pg.cidn=ch.cidn
                             and pa.cidn=ch.cidn
                                  and ap.cidn=pa.cidn
                                  and ap.cidn = em.cidn
                        and ap.employmentoid=em.oid
                        and     ap.active=1
                        and     ap.oid=pa.appointmentoid
                        and     lpad(to_char(pa.file_number),6,0)=ch.file_nb
                        and     pa.cocodeoid=pg.oid
                        and     pg.co_code=ch.co_code)     status
                   --          FED TAX
                   --          , LIVED LOCAL TAX CODE, LIVED STATE TAX CODE, LIVED LOCAL TAX, LIVED STATE TAX, MEDICARE TAX
                   --          , SCHOOL DISTRICT TAX, SCHOOL DISTRICT, SOCIAL SECURITY TAX, SUI SDI TAX, SUI SDI TAX CODE
                   --          , WORKED LOCAL TAX CODE, WORKED STATE TAX CODE, WORKED LOCAL TAX, WORKED STATE TAX
                   --          , OVERTIME EARNINGS, OVERTIME HOURS, REGULAR EARNINGS, REGULAR HOURS
                   NVL (
                        (SELECT
                             TO_CHAR(NVL(SUM(DECODE(ci.histtypeoid, 'SYS:4:3709', DECODE(ci.taxcodeoid, 'SYS:4:2982', NVL(ci.amount,0), 0), 0) ), 0)) || '~'
                             || NVL(MAX(DECODE(ci.histtypeoid, 'SYS:4:3709', DECODE(ci.taxcodeoid, 'SYS:4:2984', ci.code, NULL), NULL)), CHR(155)) || '~'
                             || NVL(MAX(DECODE(ci.histtypeoid, 'SYS:4:3709', DECODE(ci.taxcodeoid, 'SYS:4:2987', DECODE(ci.code,'XX',null,ci.code), NULL), NULL)), CHR(155)) || '~'
                             || TO_CHAR(NVL(SUM(DECODE(ci.histtypeoid, 'SYS:4:3709', DECODE(ci.taxcodeoid, 'SYS:4:2984', NVL(ci.amount,0), 0), 0) ), 0)) || '~'
                             || TO_CHAR(NVL(SUM(DECODE(ci.histtypeoid, 'SYS:4:3709', DECODE(ci.taxcodeoid, 'SYS:4:2987', NVL(ci.amount,0), 0), 0) ), 0)) || '~'
                             || TO_CHAR(NVL(SUM(DECODE(ci.histtypeoid, 'SYS:4:3709', DECODE(ci.taxcodeoid, 'SYS:4:4118', NVL(ci.amount,0), 0), 0) ), 0)) || '~'
                             || TO_CHAR(NVL(SUM(DECODE(ci.histtypeoid, 'SYS:4:3709', DECODE(ci.taxcodeoid, 'SYS:4:4114', NVL(ci.amount,0), 0), 0) ), 0)) || '~'
                             || NVL(MAX(DECODE(ci.histtypeoid, 'SYS:4:3709', DECODE(ci.taxcodeoid, 'SYS:4:4114', ci.code, NULL), NULL)), CHR(155)) || '~'
                             || TO_CHAR(NVL(SUM(DECODE(ci.histtypeoid, 'SYS:4:3709', DECODE(ci.taxcodeoid, 'SYS:4:2988', NVL(ci.amount,0), 0), 0) ), 0)) || '~'
                             || TO_CHAR(NVL(SUM(DECODE(ci.histtypeoid, 'SYS:4:3709', DECODE(ci.taxcodeoid, 'SYS:4:2989', NVL(ci.amount,0), 0), 0) ), 0)) || '~'
                             || NVL(MAX(DECODE(ci.histtypeoid, 'SYS:4:3709', DECODE(ci.taxcodeoid, 'SYS:4:2989', ci.code, NULL), NULL)), CHR(155)) || '~'
                             || NVL(MAX(DECODE(ci.histtypeoid, 'SYS:4:3709', DECODE(ci.taxcodeoid, 'SYS:4:2983', ci.code, NULL), NULL)), CHR(155)) || '~'
                             || NVL(MAX(DECODE(ci.histtypeoid, 'SYS:4:3709', DECODE(ci.taxcodeoid, 'SYS:4:2986', ci.code, NULL), NULL)), CHR(155)) || '~'
                             || TO_CHAR(NVL(SUM(DECODE(ci.histtypeoid, 'SYS:4:3709', DECODE(ci.taxcodeoid, 'SYS:4:2983', NVL(ci.amount,0), 0), 0) ), 0)) || '~'
                             || TO_CHAR(NVL(SUM(DECODE(ci.histtypeoid, 'SYS:4:3709', DECODE(ci.taxcodeoid, 'SYS:4:2986', NVL(ci.amount,0), 0), 0) ), 0)) || '~'
                             || TO_CHAR(NVL(SUM(DECODE(ci.histtypeoid, 'SYS:4:3713', NVL(ci.amount,0), 0)), 0)) || '~'
                             || TO_CHAR(NVL(SUM(DECODE(ci.histtypeoid, 'SYS:4:3727', NVL(ci.amount,0), 0)), 0)) || '~'
                             || TO_CHAR(NVL(SUM(DECODE(ci.histtypeoid, 'SYS:4:3715', NVL(ci.amount,0), 0)), 0)) || '~'
                             || TO_CHAR(NVL(SUM(DECODE(ci.histtypeoid, 'SYS:4:3716', NVL(ci.amount,0), 0)), 0)) || '~'
                             -- R16 columns.
                             -- Total Deductions Amount === Other Deductions on UI screen.
                             || TO_CHAR(NVL(SUM(DECODE(chcat.name, 'DeductionHistory'
                                  , DECODE(NVL(ci.statutory_ded, 0), 0
                                       , DECODE(ci.taxcodeoid, NULL
                                            , DECODE(ci.code, NULL, 0, NVL(ci.amount,0)), 0), 0), 0)), 0)) || '~' -- "Total Deductions Amount"
                             || TO_CHAR(NVL(SUM(DECODE(chcat.name, 'OvertimeHours', NVL(ci.amount,0)
                                  , 'AdditionalHours', NVL(ci.amount,0), 'RegularHours', NVL(ci.amount,0), 0)), 0)) || '~' -- "Total Hours Amount"
                             || TO_CHAR(NVL(SUM(DECODE(chcat.name, 'Memo', NVL(ci.amount,0), 0)), 0)) || '~' -- "Total Memo Amount"
                             || TO_CHAR(NVL(SUM(DECODE(chcat.name, 'AdditionalEarnings', NVL(ci.amount,0), 0)), 0)) || '~' -- "Total Other Earnings"
                             || TO_CHAR(NVL(SUM(DECODE(chcat.name, 'AdditionalHours', NVL(ci.amount,0), 0)), 0)) -- "Total Other Hours"
                        FROM
                             px17_checkhistoryitem ci
                             , px17_sys_type chcat
                        WHERE
                        ci.cidn=chd.cidn
                             AND ci.checkhistorydistributionoid = chd.oid
                             AND chcat.category = 'CheckHistoryItem'
                             AND chcat.oid = ci.histtypeoid
                             -- AND ci.histtypeoid IN ('SYS:4:3713', 'SYS:4:3727', 'SYS:4:3715', 'SYS:4:3716', 'SYS:4:3709')
                        ), '0' || '~' || CHR(155) || '~' || CHR(155)
                             || '0~0~0~0~' || CHR(155) || '~0~0~' || CHR(155) || '~' || CHR(155) || '~'
                             || CHR(155) || '~0~0~0~0~0~0'
                        )     taxes_and_rates
                   , ch.check_seq_num check_seq_num
                   , ch.home_cost_number home_costnumber_desc
                   , SUBSTR(f_type_px17(ch.cidn,ch.payfrequencyoid, 'NAME'), 1, 255) tax_frequency
                   , (ch.co_code || '/' || ch.home_cost_number) co_chkv_home_cost_no
                   , chd.worked_in_cost_number cost_no_worked_in
                   , chd.distribution_number distribution_number
                   , DECODE(NVL(ch.reversed_flag, 0), 1, 'Y', 'N') chk_reverse
              FROM
                   px17_checkhistory ch
                   , px17_employment em
                   , px17_person pe
                   , px17_payrollgroup pg
                   , px17_checkhistory_dist chd
                   , px17_appointment ap
              WHERE
              ch.cidn = em.cidn
              and em.cidn = pe.cidn
              and pg.cidn = ch.cidn
              and ch.cidn = chd.cidn
              and ap.cidn(+) = em.cidn
                   and ch.employmentoid=em.oid
                   AND     em.personoid=pe.oid
                   AND     pg.co_code = ch.co_code
                   AND ch.active = 1
                   AND ch.oid = chd.checkhistoryoid
                   AND ap.employmentoid(+) = em.oid
                   AND DECODE(ap.oid, NULL, 1, NVL((SELECT 1 FROM px17_payrollagreement pa
                                  WHERE
                                  pa.cidn = ap.cidn
                                  and pa.cidn = ch.cidn
                                  and pa.cidn = pg.cidn
                                  and pa.appointmentoid = ap.oid
                                       AND pa.file_number = ch.file_nb
                                       AND pa.cocodeoid = pg.oid), 0)) = 1
                                       and ch.cidn in (select distinct s_cidn from nonsuper_user_check)
                                       AND ( sys_context('payx_r17_app_context', 'app_role') in ('ADP', 'CSR')
              or (exists (select 1 from super_user_check where su_cidn =ch.cidn))
              or (ch.cidn,ch.co_code,ch.home_dept_code) in (select cidn,co_code,dep from user_security_homedept)          
              or (ch.cidn,ch.co_code,ch.home_cost_number) in (select cidn,co_code,code from user_security_cost_no)
                   or ( exists(select co_code from user_security_homedept where cidn=ch.cidn and co_code = ch.co_code and dep is null)
                   and exists(select co_code from user_security_cost_no where cidn=ch.cidn and co_code = ch.co_code and cost_no = 0) )
    Following are the functions being called:
    create or replace type myTable_17 as table of varchar2(4000);
    CREATE OR REPLACE function f_str2tbl_px17( p_str in varchar2 ) return myTable_17 pipelined
    as
    l_str long default p_str || ',';
    l_n number;
    begin
    loop
    l_n := instr( l_str, ',' );
    exit when (nvl(l_n,0) = 0);
    pipe row( ltrim(rtrim(substr(l_str,1,l_n-1))) );
    l_str := ltrim( substr( l_str, l_n+1 ) );
    end loop;
    return;
    end f_str2tbl_px17;
    CREATE OR REPLACE FUNCTION f_check_purge_px17
              fv_cidn px17_reservedfilenumber.cidn%TYPE,     
              fv_file_number     px17_reservedfilenumber.file_number%TYPE,
              fv_cocode     px17_payrollgroup.co_code%TYPE DEFAULT NULL
         ) RETURN NUMBER AUTHID CURRENT_USER
    AS
         v_val     NUMBER(5) ;
    BEGIN
         IF fv_cocode IS NULL THEN
              RETURN 0 ;
         END IF ;
         SELECT 1 INTO v_val
         FROM px17_reservedfilenumber a,
    px17_payrollgroup b
         WHERE
         a.cidn = fv_cidn
         AND b.cidn = fv_cidn
         AND a.file_number = fv_file_number
         AND a.parentoid = b.oid
    AND b.co_code = fv_cocode
         AND ROWNUM = 1 ;
         RETURN 1 ;
    EXCEPTION
         WHEN no_data_found THEN
              RETURN 0 ;
    END f_check_purge_px17 ;
    CREATE OR REPLACE FUNCTION f_check_security_px17
         fv_cidn IN px17_type_client.cidn%TYPE,
              fv_cocode          px17_cocodegroup.co_code%TYPE -- pg.cocode
              , fv_home_dept     px17_type_client.name%TYPE -- ap.home_dept
         ) RETURN NUMBER AUTHID CURRENT_USER
    AS
         v_val     NUMBER(5) ;
         v_key          VARCHAR2(20) ;
         v_users     VARCHAR2(4000) ;
         v_cocodes     VARCHAR2(4000) ;
    BEGIN
         BEGIN
              SELECT c_user_list, c_cocodes, c_run_key
              INTO v_users, v_cocodes, v_key
              FROM px17_t_context_vals
              WHERE c_run_key = (SELECT MAX(c_run_key) FROM px17_t_context_vals)
                   AND ROWNUM = 1 ;
         EXCEPTION
              WHEN no_data_found THEN
                   v_cocodes := NULL ;
         END ;
         IF v_cocodes IS NULL THEN
              RETURN 1 ;
         ELSIF INSTR( (v_cocodes || ','), (fv_cocode || ',') ) = 0 THEN
              RETURN 0 ;
         ELSE
              BEGIN
                   SELECT
                        1
                   INTO
                        v_val
                   FROM
                        px17_type_client t
                        , px17_securityobject s
                        , px17_cocodegroup c
                   WHERE
                        t.securityoid=s.oid
                        AND t.category='T_CO_DEPT'
                        AND c.useroid=(SELECT a.oid
                                       FROM px17_associate a
                                       WHERE a.oid = c.useroid
                                            AND a.active=1
                                            AND UPPER(a.name) = UPPER(v_users)
                                            AND ROWNUM = 1)
                        AND SUBSTR(s.name,8,3)=c.co_code
                        AND (c.department_access IS NULL
                             OR c.department_access LIKE '%' || t.name || '%')
                        AND SUBSTR(s.name,8,3) = fv_cocode
                        AND t.name = fv_home_dept
                        AND ROWNUM = 1 ;
                        RETURN 1 ;
              EXCEPTION
                   WHEN no_data_found THEN
                        BEGIN
                             SELECT
                                  1
                             INTO
                                  v_val
                             FROM
                                  px17_cocodegroup c
                                  , px17_associate a
                             WHERE
                                  c.useroid=a.oid
                                  AND c.department_access IS NULL
                                  AND c.co_code = fv_cocode
                                  AND UPPER(a.name)= UPPER(v_users)
                                  AND a.active=1
                                  AND ROWNUM = 1 ;
                             RETURN 1 ;
                        EXCEPTION
                             WHEN no_data_found THEN
                                  RETURN 0 ;
                        END ;
              END ;
         END IF ;
         RETURN 0 ;
    END f_check_security_px17 ;
    SELECT SUBSTR(f_type_px17(ap.cidn,ap.currentstatusoid, 'DESC'), 1, 255)
                        from
                             px17_appointment ap,
                             /*context co_ap,*/
                             px17_payrollagreement pa,
                             px17_payrollgroup pg
    CREATE OR REPLACE FUNCTION f_type_px17
    fv_cidn IN px17_type_client.cidn%TYPE,
    fv_oid IN px17_type_client.oid%TYPE,
    fv_col IN VARCHAR2 DEFAULT NULL
    ) RETURN VARCHAR2 AUTHID CURRENT_USER AS
    v_rtn_name px17_type_client.name%TYPE := NULL ;
    v_rtn_desc px17_type_client.description%TYPE := NULL ;
    BEGIN
    IF fv_oid IS NOT NULL THEN
    BEGIN
    IF UPPER(SUBSTR(fv_oid,1,3)) = 'SYS' THEN
    SELECT name, description
    INTO v_rtn_name, v_rtn_desc
    FROM px17_sys_type
    WHERE oid = fv_oid
    AND ROWNUM = 1 ;
    ELSE
    SELECT name, description
    INTO v_rtn_name, v_rtn_desc
    FROM px17_type_client
    WHERE oid = fv_oid
         AND cidn = fv_cidn
    AND ROWNUM = 1 ;
    END IF ;
    EXCEPTION
    WHEN no_data_found THEN
    v_rtn_name := NULL ;
    v_rtn_desc := NULL ;
    END ;
    END IF ;
    IF (UPPER(NVL(fv_col, '~')) = 'NAME') THEN
    RETURN v_rtn_name ;
    ELSIF ((UPPER(NVL(fv_col, '~')) = 'DESC')
    OR (UPPER(NVL(fv_col, '~')) = 'DESCRIPTION')) THEN
    RETURN v_rtn_desc ;
    ELSE
    RETURN (NVL(v_rtn_name, CHR(155)) || '~' || NVL(v_rtn_desc, CHR(155))) ;
    END IF ;
    END f_type_px17 ;
    *************************

  • New query for 'Manage Database' option in SQL Developer

    Dear all,
    I want to suggest a changed query for the 'Manage Database' option in SQL Developer (right-click on the connection), see the query below.
    This query has the following changes;
    - extra column with the Maximum disk space based on the datafiles (considering autoextend of datafiles); MAX_DATAFILES
    - the PERCENT_USED and PCT_USED are based on the MAX_DATAFILES, as this is really important (and not the difference between ALLOCATED and USED)
    - the results are shown in GB, as that is in my opinion more relevant in this time of data explosion
    - rename of the column FREE to UNUSED_ALLOCATED, as this column identifies how much of the Allocated space is not used
    I hope the query can replace the current one, to improve SQL Developer even more.
    Thanks for the nice tool SQL Developer!
    Kind regards,
    Siebe
    -- Manage Database - Changed Oracle SQL Developer query with regard to Usage of Tablespaces in GB (considering autoextend of datafiles)
    SELECT "TABLESPACE_NAME", "PERCENT_USED", "PCT_USED", "MAX_DATAFILES", "ALLOCATED", "USED", "UNUSED_ALLOCATED", "DATAFILES" FROM(
    select * from (
    SELECT a.tablespace_name,
    --'SQLDEV:GAUGE:0:100:0:0:'||nvl(ROUND(((c.bytes-nvl(b.bytes,0))/c.bytes)*100,2),0) percent_used,
    --ROUND(((c.bytes-nvl(b.bytes,0))/c.bytes)*100,2) PCT_USED,
    'SQLDEV:GAUGE:0:100:0:0:'||nvl(ROUND(((c.bytes-nvl(b.bytes,0))/c.maxbytes)*100,2),0) percent_used,
    ROUND(((c.bytes-nvl(b.bytes,0))/c.maxbytes)*100,2) PCT_USED,
    round(c.bytes/1024/1024/1024,2) allocated,
    round(c.bytes/1024/1024/1024-nvl(b.bytes,0)/1024/1024/1024,2) used,
    round(c.maxbytes/1024/1024/1024,2) max_datafiles,
    round(nvl(b.bytes,0)/1024/1024/1024,2) unused_allocated,
    c.datafiles
    FROM dba_tablespaces a,
    ( SELECT tablespace_name, SUM(bytes) bytes FROM dba_free_space GROUP BY tablespace_name ) b,
    ( select count(1) datafiles, SUM(bytes) bytes, SUM(DECODE(autoextensible, 'YES', maxbytes, bytes)) maxbytes, tablespace_name from dba_data_files GROUP BY tablespace_name ) c
    --( select count(1) datafiles, SUM(bytes) bytes, SUM(c.maxbytes) maxbytes, tablespace_name from dba_data_files GROUP BY tablespace_name ) c
    WHERE b.tablespace_name (+) = a.tablespace_name
    AND c.tablespace_name (+) = a.tablespace_name
    ORDER BY nvl(((c.bytes-nvl(b.bytes,0))/c.maxbytes),0) DESC
    ) --sub1 order by 1 asc
    )

    Very little technical information provided about the error.
    "+IO error.+" - this likely refers to the client attempting to use a socket handle and the call to the handle failing.
    +"The network adapter could not establish the connection.+" - this likely means that the IP address to connect to, could not be reached, or that the connection was not accepted on that port on the remote IP address. (typically hostname resolution errors would give a different error)
    The easiest way to test connectivity is using the ping command to bounce an ICMP echo off the remote IP.
    If that works, test access to remote port on that remote IP using the telnet command - this will check whether there is a service accepting connections on that port, and whether access to that port is allowed in case of firewalls en-route.

  • SIngle query for table Update

    In a procedure I have a CURSOR FOR_LOOP
      FOR CUR_CONTO in
         (SELECT TO_NUMBER(lpad(nvl(ltrim(K_DRG),'0'),3,'0')   ) K_DRG,
             CASE
            WHEN K_MDC  = 'NA' THEN 0
             WHEN K_MDC <> 'NA' THEN TO_NUMBER( lpad(nvl(ltrim(K_MDC),'0'),2,'0')   )
             END K_MDC,
                     TO_NUMBER(substr(PAZIENTE,     instr(PAZIENTE,'@')+1, 4) ) KCODET, 
                     substr(PAZIENTE,     instr(PAZIENTE,'@')+5, 1)           TIPORDT,  
                     TO_NUMBER(SUBSTR(N_CCLINICA,1,4) )                      ANNOT
                FROM table_g)
         LOOP
         UPDATE table_dm SET K_DRG = CUR_CONTO.K_DRG , K_MDC = NVL(CUR_CONTO.K_MDC,0)
                        WHERE  K_CODE  = CUR_CONTO.KCODET
                        AND    TIPORD  = CUR_CONTO.TIPORDT
                        AND    ANNO    = CUR_CONTO.ANNOT ;
         end  LOOP;
      I want change it in a single query, how can I do?
    I write
    UPDATE table_dm SET K_DRG , K_MDC =
        (SELECT     TO_NUMBER(lpad(nvl(ltrim(K_DRG),'0'),3,'0')   ) K_DRG,
             CASE
            WHEN K_MDC  = 'NA' THEN 0
             WHEN K_MDC <> 'NA' THEN TO_NUMBER( lpad(nvl(ltrim(K_MDC),'0'),2,'0')   )
             END K_MDC FROM table_g )
                but I don't know how insert in the where the variable KCODET, TIPORDT ,ANNOT get from table table_g
    WHERE K_CODE = CUR_CONTO.KCODET
    AND TIPORD = CUR_CONTO.TIPORDT
    AND ANNO = CUR_CONTO.ANNOT ;
    And How can I lock table_dm because it has some trigger in updating?
    Thanks in advance

    It should be something like this
    UPDATE table_dm dm
        SET (K_DRG, K_MDC) = (
                    SELECT k_drg, NVL(k_mdc,0)
                      FROM (SELECT TO_NUMBER(lpad(nvl(ltrim(K_DRG),'0'),3,'0')   ) k_drg,
                             CASE
                                  WHEN k_mdc  =  'NA' THEN 0
                                  WHEN k_mdc  != 'NA' THEN TO_NUMBER( lpad(nvl(ltrim(k_mdc),'0'),2,'0'))
                             END k_mdc,
                             TO_NUMBER(substr(paziente, instr(paziente,'@')+1, 4)) kcodet, 
                             substr(paziente, instr(paziente,'@')+5, 1) tipordt,  
                             TO_NUMBER(SUBSTR(n_cclinica,1,4)) annot
                           FROM table_g) t
                     WHERE t.kcodet  = dm.k_code
                       AND t.tipordt = dm.tipord
                       AND t.annot   = dm.annot
      WHERE EXISTS (
               SELECT null
                 FROM (SELECT TO_NUMBER(lpad(nvl(ltrim(K_DRG),'0'),3,'0')   ) k_drg,
                        CASE
                             WHEN k_mdc  =  'NA' THEN 0
                             WHEN k_mdc  != 'NA' THEN TO_NUMBER( lpad(nvl(ltrim(k_mdc),'0'),2,'0'))
                        END k_mdc,
                        TO_NUMBER(substr(paziente, instr(paziente,'@')+1, 4)) kcodet, 
                        substr(paziente, instr(paziente,'@')+5, 1) tipordt,  
                        TO_NUMBER(SUBSTR(n_cclinica,1,4)) annot
                      FROM table_g) t
                WHERE t.kcodet  = dm.k_code
                  AND t.tipordt = dm.tipord
                  AND t.annot   = dm.annot
                )Note: Code not tested

  • Query for details of  Sale order , Invoice and COGS

    I Need the report cointing following based on month & Business partner
    Sale order, Sale Amount, Due date, Invoice Amount, Last Invoice date, COGS amount

    Hi Anantha,
    Please check below link and modify according to your requirement.
    Sales Order Query for  in SAP B1
    Query - Sales Orders linked to Deliveries
    My Top SQL Queries for SAP Business One
    Hope this helps
    Regards::::
    Atul Chakraborty

  • How can I get the elapse time for execution of a Query for a session

    Hi ,
    How can I get the elapse time for execution of a Query for a session?
    Example - I have a report based on the procedure ,when the user execute that it takes say 3 min. to return rows.
    Is there any possible way to capture this session info. for this particular execution of query along with it's execution elapse time?
    Thanks in advance.

    Hi
    You can use the dbms_utility.get_time tool (gives binary_integer type value).
    1/ Initialize you time and date of beginning :
    v_beginTime := dbms_utility.get_time ;
    2/ Run you procedure...
    3/ Get end-time with :
    v_endTime := dbms_utility.get_time ;
    4/ Thus, calculate elapsed time by difference :
    v_elapsTime := v_endTime - v_beginTime ;
    This will give you time elapsed in of 100th of seconds...
    Then you can format you result to give correct print time.
    Hope it will help you.
    AL

  • How to build sql query for view object at run time

    Hi,
    I have a LOV on my form that is created from a view object.
    View object is read-only and is created from a SQL query.
    SQL query consists of few input parameters and table joins.
    My scenario is such that if input parameters are passed, i have to join extra tables, otherwise, only one table can fetch the results I need.
    Can anyone please suggest, how I can solve this? I want to build the query for view object at run time based on the values passed to input parameters.
    Thanks
    Srikanth Addanki

    As I understand you want to change the query at run time.
    If this is what you want, you can use setQuery Method then use executeQuery.
    http://download.oracle.com/docs/cd/B14099_19/web.1012/b14022/oracle/jbo/server/ViewObjectImpl.html#setQuery_java_lang_String_

  • Alert message(Query) for a Production order?

    Hi Experts,
    I want to get an alert message for the production order doucument based on the due date of it. The user must get the alert a  one day before the duedate of the document. How to write the Query for it? Urgent ,waiting for earliest reply.
    Regards ,
    Magesh.

    Create a Formatted Seach with the following Query
    SELECT T0.DocNum AS 'Document Number', T0.CreateDate AS 'Creation Date', T0.DueDate AS 'Due Date'
    FROM  [dbo].[OWOR] T0  WHERE DATEDIFF(Day,GetDate(),T0.DueDate) = 1
    Then, Create an Alert from Adminis..> Alerts Management and Give a Name, Click Open Saved Query, Select the query you saved, Tick the Int. check box against the user who gets the Alert.  Check Active. Select Frequency.
    Good luck
    Suda

  • [Oracle 8i] Query for N rows by column value?

    I was just wondering if what I want to do is possible within my query (rather than programmatically)...
    I want to return the N most recent records for each unique value in a particular column.
    Here's a sample table:
    CREATE TABLE     orders
    (     order_no     numeric(10)
         part_no          varchar(5)
         close_date     date
         order_qty     numeric(10)
         scrap_qty     numeric(10)
         CONSTRAINT order_pk PRIMARY KEY (order_no)
    );And some sample data....
    INSERT INTO     orders     VALUES
    (0000012345,'ABC-1',TO_DATE('01-01-2010','mm-dd-yyyy'),10,1);
    INSERT INTO     orders     VALUES
    (0000013498,'ABC-1',TO_DATE('01-05-2010','mm-dd-yyyy'),12,2);
    INSERT INTO     orders     VALUES
    (0000033452,'ABC-1',TO_DATE('01-10-2010','mm-dd-yyyy'),5,0);
    INSERT INTO     orders     VALUES
    (0000001468,'ABC-1',TO_DATE('01-15-2010','mm-dd-yyyy'),15,1);
    INSERT INTO     orders     VALUES
    (0000022349,'BR723',TO_DATE('01-03-2010','mm-dd-yyyy'),8,1);
    INSERT INTO     orders     VALUES
    (0000069581,'BR723',TO_DATE('01-05-2010','mm-dd-yyyy'),5,0);
    INSERT INTO     orders     VALUES
    (0000436721,'BR723',TO_DATE('01-10-2010','mm-dd-yyyy'),14,1);
    INSERT INTO     orders     VALUES
    (0000213446,'A5001',TO_DATE('01-06-2010','mm-dd-yyyy'),5,1);
    INSERT INTO     orders     VALUES
    (0000327987,'A5001',TO_DATE('01-08-2010','mm-dd-yyyy'),5,0);
    INSERT INTO     orders     VALUES
    (0000041353,'A5001',TO_DATE('01-14-2010','mm-dd-yyyy'),12,1);
    INSERT INTO     orders     VALUES
    (0000011241,'A5001',TO_DATE('01-15-2010','mm-dd-yyyy'),5,1);In this example, what I want to return are the 2 most recent orders (by close_date) for each part number.
    Here is a table with the results I want to get, based on the scenario above:
    order_no     part_no          close_date     order_qty     scrap_qty
    0000001468     'ABC-1'          '01-15-2010'     15          1
    0000033452     'ABC-1'          '01-10-2010'     5          0
    0000436721     'BR723'          '01-10-2010'     14          1
    0000069581     'BR723'          '01-05-2010'     5          0
    0000011241     'A5001'          '01-15-2010'     5          1
    0000041353     'A5001'          '01-14-2010'     12          1Is it possible to write a query to get these results, or am I going to have to query for all available data, and find the 2 most recent rows programmatically?
    Thanks in advance!

    Hi,
    user11033437 wrote:
    I'm going to test that out right now. I think if it works, I may need to use dense_rank() rather than rank(), because it is possible that two orders for the same part number could have the same close date, and according to what I've looked up on the rank() and dense_rank() functions, rank() can give non-consecutive results if the values are the same.What's wrong with non-consecutive values?
    Use RANK, DENSE_RANK or ROW_NUMBER depending on what you want.
    For example; say a certain part has been ordered 8 times:
    3 times with close_date January 29, 2010 (all at exactly the same time),
    4 times with close_date January 28, 2010 (all at exactly the same time), and
    1 time with close_date January 27, 2010.
    If you ask for the last 2 rows:
    RANK will give you the 3 rows from January 29. (All 3 have an equal claim to being in the top 2.)
    DENSE_RANK will give you the 7 rows from January 28-29 (the last two values , regardless of how many rows have them).
    ROW_NUMBER will give you 2 rows from January 29. (Which 2? It's arbitrary unless you add a tie-breaker to the ORDER BY clause.)
    All these functions are available in Oracle 8.1.

  • Can any one send select query for this?

    Hi,
    can any one plese send select query for the following query.please send as early as possible.
    Loop through the I_BSID internal table to fill records in I_OUTPUT.Combine data from I_BSID, I_KNKK, I_KNKK_KNKLI, I_KNA1 and I_KNVV into I_OUTPUT based on the linking conditions .Field Description Source are
    I_OUTPUT-BUKRS     Company code     I_BSID-BUKRS
    I_OUTPUT-KUNNR     Customer number     I_BSID-KUNNR
    I_OUTPUT-NAME1     Customer Name     I_KNA1-NAME1
    I_OUTPUT-KNKLI     Credit account     I_KNKK-KNKLI
    I_OUTPUT-KDGRP     Customer Group     I_KNKK-KDGRP
    I_OUTPUT-KLIMK     Credit Limit     I_KNKK_KNKLI-KLIMK
    I_OUTPUT-KVGR1     Business Unit     I_KNVV-KVGR1
    I_OUTPUT-REBZG     Invoice Number     I_BSID-REBZG
    I_OUTPUT-BLDAT     Invoice Date     I_BSID-BLDAT
    I_OUTPUT-WAERS     Document Currency     I_BSID-WAERS
    I_OUTPUT-DUE_DATE     Due Date     Based on below
    Calculation
      Get the Payment terms days combining I_BSID and I_T052 based on the linking conditions mentioned above.    Note : a) Baseline Date : If baseline date I_BSID-ZFBDT is blank , use the Document Date.b) Payment Term Days :If I_BSID-ZBD3T is not blank, take this as Payment Term Days for Due date calculation.
                       If I_BSID-ZBD3T is Blank, then get payment term days from I_T052 based on I_BSID-ZTERM. If there are more than one record in I_T052 for the given Payment term, get the day part from baseline date and select the first record where the day limit I_T052-ZTAGG is greater than the day part.If I_BSID-ZBD3T is blank and I_BSID-ZTERM is also blank, then take Y000 (Due Immediately) as Payment term and proceed with the above logic. Set the payment term field blank while printing.
    Calculate Due date : For Debits, Determine Due Date = Baseline Date + Payment term Days(not discount days)                                                          For  Credits  Due date = Baseline date.Then, move the amount I_BSID-DMBTR to respective buckets (Not yet Due, Current Due, Past due 1-30, Past Due 31-60 etc.)  Based on the due date.
    Thanks&Regards,
    praveen kumar.A

    HI,
    To get Open Items you can use Function module:
    data:i_items TYPE STANDARD TABLE OF rfpos.
    CALL FUNCTION 'CUSTOMER_OPEN_ITEMS'
    EXPORTING
    bukrs = p_bukrs
    kunnr = wa_customer-kunnr
    TABLES
    t_postab = i_items
    EXCEPTIONS
    no_open_items = 1
    OTHERS = 2.
    Table I_items will have all the open items for that Customer in the given company code.
    Well for Clear Items: Try
    GET_CLEARED_ITEMS or FMITPOFM_CLEARED_ITEMS_GET.
    Hope it helps.
    Manish

  • Fields on single-row Form based on Query

    We are implementing a front-end for Oracle Reports using HTMLDB. We have all of our reports and their parameters set up in tables, along with the specification for where to obtain the values to display for the parameters. The tables also specify the display order for the params.
    In HTMLDB we need to have the "parameter screen" display when the user selects a report from the tree based on report_id. I created a report based on a query referencing the :p_rpt_id from the tree which lists the parameters for the selected report.
    So far no problem. Now, then next step is to implement conditional lists of values on the parameters based on the definitions in the parameters tables.
    Some parameters have an unconditional source for values, some have onchange requirement (ie, when you pick a region in p_region the values available in p_customer would include only those in p_region). Each parameter in our table also includes an attribute to specify the type of htmldb_item to render (select list, popup, checkbox etc).
    I can get the parameter "report" setup to render the lov's based on the correct sources, but I cannot see where to incorporate the onchange trigger for the "parent" parameters (p_region in the example), or how to get the value from p_region when rendering the lov for p_customer.
    Any tips on how to get around this problem?

    I think I've managed to work thru the previously stated issues except for one remaining stumbling block:
    Test Case:
    Report ID: 36
    Parameters:
    1 Year FISCAL_YR_V
    2 Month/Qtr MTH_QTR_V
    3 Month FISCAL_MONTH_V
    4 Chain ADDR_CHAIN_V
    etc.
    Params 1,2,4 are generated with htmldb_item.select_list_from_query and htmldb_item.popup_from_query depending on the LOV type specified for the parameter.
    Param 3 is also generated by htmldb_item.select_list_from query but its query parameter includes a WHERE clause referencing the value set by param 2 when the onchange event fired.
    The problem is the generated lov for param 3 returns no values. Depending on the selection of param 2 (M or Q) the values for param 3 would be 1-12 or 1-4 (respectively). I've tried both of the following in the query for the dependent lov:
    where reference_id = :P10_F02
    where reference_id = v('P10_F02')
    Neither returns any values. I've verified that the correct value for param 2 (M or Q) is being set in the session state by the onchange event on that parameter.
    Is there something I'm not setting to cause the query for the dependent lov to bind the new value of P10_F02 when the onchange event fires?

Maybe you are looking for

  • How do you use a main applet to call other child applets?

    Hello Everyone! I have created three separate applets that animate different colored walkers that walk across the web page with each applet doing what I need them to do. I need to create a main applet that displays a component that allows the user to

  • Transferring data from old hard drive to new computer

    The hard drive on my MacBook Pro went bad and had to be replaced.  I was told it would be simple to transfer its contents onto the new installed hard drive, but I have yet to figure it out.  Can anyone tell me what equipment I need and how to do this

  • How to link ECC Company code with BCS Consolidation unit

    I have to create new consolidation unit in BCS, parallelly in SAP R/3 also I have created a company code. I could read following in the forum :- The Company Codes from ECC are assigned to the characteristic Company in BCS, thus creating a one to one

  • Custom page issue in smartforms

    hi all,     As per requirement custom page with 11 inch X 12 inch page size.In windows in default page setting is "letter" so when i am taking print out ,system is considering that letter format and it is not printing all the data as per form develop

  • Bought app. Doesn't work in OS X. Want money back.

    I was just looking for some way to get Israeli radio stations in iTunes on my MacBook or PPC, so I bought an app in the iTunes store after Googling "Israel radio iTunes OS X" Well, now I have an app in iTunes that refuses to play. I assume that's bec