Using SUBSTRING and CHARINDEX

I have these values in a column:
\mssql$scdb:access methods
\mssql$scdb:buffer manager
\mssql$scdb:general statistics
\mssql$scdb:locks(_total)
\mssql$scdb:memory manager
\mssql$scdb:sql statistics
\sqlserver:access methods
\sqlserver:buffer manager
\sqlserver:general statistics
\sqlserver:locks(_total)
\sqlserver:memory manager
\sqlserver:sql statistics
I want to write code to seperate into two columns, eliminating the \ and the :.
mssql$scdb                                        access methods
mssql$scdb                                        buffer manager
mssql$scdb                                        general statistics
mssql$scdb                                        locks(_total)
mssql$scdb                                        memory manager
mssql$scdb                                        sql statistics
sqlserver                                           
access methods
sqlserver                                           
buffer manager
sqlserver                                            general
statistics
sqlserver                                            locks(_total)
sqlserver                                           
memory manager
sqlserver                                            sql
statistics
I have tried to use substring and charindex and I cannot seem to get it to work.
Could someone please help?
lcerni

Hi,
Try this.
DECLARE @Tbl TABLE(Value VARCHAR(150))
INSERT INTO @Tbl(Value)
VALUES('\mssql$scdb:access methods'),
('\mssql$scdb:buffer manager'),
('\mssql$scdb:general statistics'),
('\mssql$scdb:locks(_total)'),
('\mssql$scdb:memory manager'),
('\mssql$scdb:sql statistics'),
('\sqlserver:access methods'),
('\sqlserver:buffer manager'),
('\sqlserver:general statistics'),
('\sqlserver:locks(_total)'),
('\sqlserver:memory manager'),
('\sqlserver:sql statistics')
SELECT REPLACE(SUBSTRING(Value, 0,CHARINDEX(':',Value)),'\','') Column1,
SUBSTRING(Value, CHARINDEX(':',Value)+1, LEN(Value)) Column2
FROM @Tbl
- Pls mark as answer/vote, if this post is helpful.
Sugumar Pannerselvam

Similar Messages

  • How to Split the string using Substr and instr using loop condition

    Hi every body,
    I have below requirement.
    I need to split the string and append with single quotes('') followed by , (comma) and reassign entire values into another variable. so that i can use it where clause of update statement
    for example I am reciveing value as follows
    ALN varchar2(2000):=(12ERE-3MT-4Y,4IT-5O-SD,OP-K5-456,P04-SFS9-098,90P-SSF-334,3434-KJ4-O28,AS3-SFS0-J33,989-3KL-3434);
    Note: In the above variable i see 8 transactions, where as in real scenario i donot how many transaction i may recive.
    after modification i need above transactions should in below format
    ALTR Varchar2(2000):=('12ERE-3MT-4Y','4IT-5O-SD','OP-K5-456','P04-SFS9-098','90P-SSF-334','3434-KJ4-O28','AS3-SFS0-J33','989-3KL-3434');
    kindly help how to use substr and instr in normal loop or for loop or while loop while modifying the above transactions.
    Please help me to sort out this issue.
    Many Thanks.
    Edited by: user627525 on Dec 15, 2011 11:49 AM

    Try this - may not be the best way but...:
    create or replace type myTableType as table of varchar2(255)
    declare
    v_array mytabletype;
    v_new_str varchar2(4000);
    function str2tbl
             (p_str   in varchar2,
              p_delim in varchar2 default '.')
             return      myTableType
        as
            l_str        long default p_str || p_delim;
             l_n        number;
             l_data     myTableType := myTabletype();
        begin
            loop
                l_n := instr( l_str, p_delim );
                exit when (nvl(l_n,0) = 0);
                l_data.extend;
                l_data( l_data.count ) := ltrim(rtrim(substr(l_str,1,l_n-1)));
                l_str := substr( l_str, l_n+length(p_delim) );
            end loop;
            return l_data;
       end;
    begin
      v_array := str2tbl ('12ERE-3MT-4Y,4IT-5O-SD,OP-K5-456,P04-SFS9-098,90P-SSF-334,3434-KJ4-O28,AS3-SFS0-J33,989-3KL-3434', ',');
          FOR i IN 1 .. v_array.COUNT LOOP
             v_new_str := v_new_str || ''''||v_array(i)||'''' || ',';
          END LOOP;
       dbms_output.put_line(RTRIM(v_new_str, ','));
    end;  
    OUTPUT:
    =======
    '12ERE-3MT-4Y','4IT-5O-SD','OP-K5-456','P04-SFS9-098','90P-SSF-334','3434-KJ4-O28','AS3-SFS0-J33','989-3KL-3434'HTH
    Edited by: user130038 on Dec 15, 2011 12:11 PM

  • Spliting Column with a Substring and Charindex

    I have a column in my database that stores title, first name and last name. But data in this column is not clean as sometimes, the customer's title is missing or null, other time the first name is not available and some other time, the last name is
    void. Now, I want to separate or split the column into three - Title, FirstName, LastName bearing in mind that I have to check for nulls or empty data. How do I clean this data so that errors like:
    Msg 536, Level 16, State 2, Line 1
    Invalid length parameter passed to the RIGHT function.
    or
    Msg 537, Level 16, State 2, Line 1
    Invalid length parameter passed to the LEFT or SUBSTRING function.
    are not returned.
    I wrote a script like this but not good enough.
    SELECT FullName
    , LEFT(FullName, ISNULL(NULLIF(CHARINDEX(' ', FullName) - 1, -1), LEN(FullName))) AS Title
    , RIGHT(Salute, LEN(Salute) - CHARINDEX(' ', FullName, 1)) FirstName
    , SUBSTRING(FullName, 1, CHARINDEX(' ', FullName, 19) - 1) LastName
    FROM Details
    If we have a title and a name, we should split into 'Title', 'FirstName'. If no title, we will treat it as 'FirstName' and 'LastName' 
    Thank you!
    Zionlite

    create table T (
      [Name] varchar(40)
    insert into T ([Name]) values ('Doe,John E')
    insert into T ([Name]) values ('Doe,Andy')
    insert into T ([Name])  values ('Doe,Tim W')
    ---go
    select LastName, FirstName, MiddleName
    from (
      select
        Name,
        substring(Name,1,Comma-1) LastName,
        substring(Name,Comma+1,Spce-Comma-1) FirstName,
        nullif(substring(Name,Spce+1,40),'') MiddleName
      from (
        select
          Name,
          charindex(',',Name) Comma,
          charindex(' ',Name+space(1),charindex(',',Name)) Spce
        from T
      ) D
    ) SplitNames
    Best Regards,Uri Dimant SQL Server MVP,
    http://sqlblog.com/blogs/uri_dimant/
    MS SQL optimization: MS SQL Development and Optimization
    MS SQL Consulting:
    Large scale of database and data cleansing
    Remote DBA Services:
    Improves MS SQL Database Performance
    SQL Server Integration Services:
    Business Intelligence

  • Using Substr and Instr together

    Hi All,
    I have a string like 'Employee_id,employee_name,employee_ssn,employee_ps'
    I would like to extract all the four columns individually in a single statement.
    For ex:
    select SUBSTR('Employee_id,employee_name,employee_ssn,employee_ps',1,
    INSTR('Employee_id,employee_name,employee_ssn,employee_ps',',',1,1)-1) from dual;
    this gives me Employee_id. The same way how do i get the other coulmn names by comma position.
    Pls help me out.
    Please note that the column names have to be extracted depending on the comma position.
    Thanks.

    You can use regular expressions if you're running an Oracle version that's 10g or more recent, to make it very simple:
    Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.1.0
    Connected as FSITJA
    SQL>
    SQL> select regexp_substr('Employee_id,employee_name,employee_ssn,employee_ps', '[^,]+', 1, 1) col_1,
      2         regexp_substr('Employee_id,employee_name,employee_ssn,employee_ps', '[^,]+', 1, 2) col_2,
      3         regexp_substr('Employee_id,employee_name,employee_ssn,employee_ps', '[^,]+', 1, 3) col_3,
      4         regexp_substr('Employee_id,employee_name,employee_ssn,employee_ps', '[^,]+', 1, 4) col_4
      5    from dual;
    COL_1       COL_2         COL_3        COL_4
    Employee_id employee_name employee_ssn employee_ps
    SQL>

  • Getting substring out of column using substring and /or instring function

    I need to strip out only JR and Sr out of the last name column. But for the last name " Mcfadden Iii" leave as is.
    last_name
    Mcfadden Iii
    Williams
    Graham
    Chandler
    La Munion
    Cook
    Hall
    Hall
    Davidson
    Williams
    Williams Jr
    Bell
    Goodwin
    Rivera
    Mclendon Sr
    Mclendon
    Robinson
    Vines
    Campbell
    Pyne
    Myers
    Williams
    Moody Williams
    Edited by: user581807 on Mar 12, 2009 6:03 AM

    Hi,
    REGEXP_REPLACE ( last_name
                   , ' ((jr)|(sr))$'
                   , NULL
                   , 1
                   , 1
                   , 'i'
                   )will do that, regardless of whether 'jr' or 'sr' is capitalized or not.
    If you prefer a case-sensitive expression, omit the last argument. (Actually, you could omit the last four arguments ", NULL, 1, 1, 'i'").

  • Substri and instr problem --Please help

    Hi ,
    I would like to get the find tablename starts with 'EXP' using substring and instring . I am using oracle 9i. Please help me out
    Example : 'Schema.explogtable'
    I will use table name ' EXP' in one of my procedure as input parameter to procedure
    If tablename= substr('schema.explogtable','instr('schema.explog','.',1,3) then
    Execute Procedure1('tablename')
    Else
    Execute procedure2('tablename')
    I would appreciate your help
    Regards,
    Clarkc

    ClarkC,
    Here just replace procedure1 and procedure2 with your procedure names;
    create table temp_table
    ( table_name varchar2(30)
    insert into temp_table values ('TESTME.MY_OBJECTS');
    insert into temp_table values ('TESTME.OBJECTS');
    insert into temp_table values ('ABC.ECFOBJECTLOG');
    insert into temp_table values ('XYZ.BDEOBJECTTABLE');
    insert into temp_table values ('ABC.ABCTABLE');
    insert into temp_table values ('ZYD.CLIENTTABLE');
    insert into temp_table values ('NMS.CLIENTLOGTABLE');
    COMMIT;
    pl/sql anonymous blocks  I defined 2 variables for readibility and understanding
    DECLARE
       CURSOR tcur
       IS
          SELECT table_name
          FROM temp_table;
       table_name   VARCHAR2 (40);
       my_table     VARCHAR2 (40);
    BEGIN
       FOR cur IN tcur
       LOOP
          my_table     := NULL;
          my_table     := cur.table_name;
          table_name   := SUBSTR (my_table, INSTR (my_table, '.') + 1);
          IF (table_name LIKE ('%OBJ%'))
          THEN
             DBMS_OUTPUT.put_line ('table_name containing OBJ=' || table_name);
             -- NOTE : CALL YOUR PROCEDURE1 HERE for tables containing OBJ;
            procedure1(table_name);
          ELSE
             DBMS_OUTPUT.put_line('table_name  not containing OBJ=' || table_name);
               -- NOTE : CALL YOUR PROCEDURE2 HERE for tables not containing OBJ;
            procedure2(table_name);
          END IF;
       END LOOP;
    EXCEPTION
       WHEN OTHERS
       THEN
          DBMS_OUTPUT.put_line (SUBSTR (SQLERRM, 1, 300));
          RAISE;
    END;
    Here is the output of the above block
    table_name containing OBJ=MY_OBJECTS
    table_name containing OBJ=OBJECTS
    table_name containing OBJ=ECFOBJECTLOG
    table_name containing OBJ=BDEOBJECTTABLE
    table_name  not containing OBJ=ABCTABLE
    table_name  not containing OBJ=CLIENTTABLE
    table_name  not containing OBJ=CLIENTLOGTABLEHope this helps
    Regards
    Edited by: OrionNet on Jan 17, 2009 11:48 AM

  • PL-SQL Solve: Using INSTR and SUBSTR

    I am trying to work on this and cannot get a solution. Please help
    You have to use INSTR and SUBSTR to solve
    Question:
    You have the following acceptable value
    Numberic: 0-34
    80-100
    or Non Numberic X S U D- D D+
    Im have to use INSTR and SUBSTR functions to test that the value is a valid (as above) number before TO_NUMBER is called:
    SELECT TO_NUMBER('?? ') //HERE ?? and a space (for 100 etc) is for the values as above
    FROM DUAL
    WHERE ....INSTR(......)<=;
    (Hence if the number is true then number comes back or it says no rows)
    and also id non numberic it should also be tested.
    I am completely unsure about it but tried this
    SELECT TO_NUMBER('34 ')
    FROM DUAL
    WHERE INSTR('0123456789',1,1)<=9 (looking at first number ?)
    AND
    INSTR('0123456789',2,2)<=9
    AND
    INSTR('0123456789',3,3)=0;
    Please help

    We have the following value that we can use:
    Numeric: 0-34 and 80-100 only
    or Non Numberic X S U D- D D+
    Have to use INSTR and SUBSTR functions to test that the value is a valid
    (for now only trying to create a function which can later be put into a procedure.)
    SELECT TO_NUMBER('12 ') //e.g HERE 12 and a space for the values as above
    FROM DUAL
    the where clause looks at all three spaces to make sure values are correct (given number or non-numberic values only)
    (Hence if the number is true then number comes back (meaning true)
    or it says NO rows)
    If value is non numeric, test it to allow non numberic also.
    I am completely unsure about it but tried this
    SELECT TO_NUMBER('34 ')
    FROM DUAL
    WHERE INSTR('0123456789',1,1)<=9 (looking at first number ?)
    AND
    INSTR('0123456789',2,2)<=9
    AND
    INSTR('0123456789',3,3)=0;
    Something like this has to be done.....subst (instr, x,x,) i think mite help.

  • Get the values using substr

    Hi All,
    i am a comma seperated values into a variable. below are the values.
    "1234567,3,124567,3,14"
    the length of the values can vary. eg the output can also be
    "123,3,124567,443,1224"
    I need to get each value and store it a separate variable. is it possible using substr..?
    Please help me out...

    Hi,
    Here's how you can split a delimited list into parts in Oracle 9:
    WITH     got_part_cnt     AS
         SELECT     pk
         ,     csv
         ,     1 + LENGTH (csv)
                - LENGTH (REPLACE (csv, ','))     AS part_cnt
         FROM     table_x
    ,     cntr     AS
         SELECT     LEVEL     AS n
         FROM     ( SELECT  MAX (part_cnt)     AS max_part_cnt
                FROM       got_part_cnt
         CONNECT BY     LEVEL <= max_part_cnt
    ,     got_pos          AS
         SELECT     p.pk
         ,     p.csv
         ,     c.n
         ,     INSTR ( ',' || p.csv
                    , 1
                    , c.n
                    )          AS start_pos
         ,     INSTR ( p.csv || ','
                    , 1
                    , c.n
                    )      AS end_pos
         FROM    got_part_cnt     p
         JOIN     cntr          c     ON     c.n     <= p.part_cnt
    SELECT       pk
    ,       csv
    ,       n
    ,       SUBSTR ( csv
                 , start_pos
               , end_pos - start_pos
               )               AS item
    FROM       got_pos
    ORDER BY  pk
    ,            n
    ;Pk is the primary key of table_x. If you don't need it, you can omit it.
    Of course, this will work in versions later than 9, but you wouldn't want to if you could use REGEXP_SUBSTR.

  • How to use substr in external table defnition.

    Hi All,
    Im using oracle 11g. I have an external table which is reading data from a file. For one of the column, i need to get only the first 250 characters. My external table defnition looks like this
    create table tbl_substr
    ( col1 varchar2(20),
    col2 varchar2(250)
    organization external
    ( type oracle_loader
    default directory XXXX
    access parameters (
    records delimited by newline
    FIELDS TERMINATED BY '|'
    missing field values are null
    ( col1 ,
    col2 "substr(:col2,1,250)"
    ) ) location ('file.txt') )
    reject limit unlimited
    But this defnition gives an error when i do select * from tbl_substr
    I want to use substr in external table defnition its self and not in SELECT. Also i dont want to crete a view to solve this. If anyone has done this please help.

    You need to play with COLUMN_TRANSFORMS
    http://download.oracle.com/docs/cd/B19306_01/server.102/b14215/et_params.htm#sthref1792
    BTW, i too got it from Google. I was not aware about this :)
    Amardeep Sidhu

  • Substr and instr for long column

    Plesae need support ,how can use instr and substr function for column with long datatype
    select substr(rec,1,(instr(rec,'?',1))) from F_DE_O_HISTORY_QUEUE_PRE_TST2
    rec column is long,When execute this select message displayed as ORA-00932: inconsistent datatypes: expected NUMBER got LONG

    Try to create a global temporary table and work on this table using DBMS_LOB.INSTR and DBMS_LOB.SUBSTR:
    SQL> desc t;
    Name                                      Null?    Type
    X                                                  NUMBER(38)
    Y                                                  LONG
    SQL> create global temporary table tmp on commit preserve rows as select x, to_lob(y) as y from t ;
    Table created.
    SQL> desc tmp;
    Name                                      Null?    Type
    X                                                  NUMBER(38)
    Y                                                  CLOBEdited by: P. Forstmann on 19 janv. 2010 12:42

  • Using substring function with error

    Hi Guys,
    I have a source field with 1200 characters which need to map to multiple target segments for  132 count of this source field.
    This is not a mandatory field so it sometimes come without any value.
    I am using substring function to breakout the string for every 132 characters and mapped to the target segments.
    There are two problems, first it seems that if source is blank, there will be error.
    Second, if source field come with only eg. 300 characters, error will also occurs.
    I have searched thru SDN and try some of the UDF but to no avail.
    Appreciate your guidance on this problem.
    Regards
    FNG

    H Rahul,
    I have tried your quote but face some syntax error as follows
    Function calculate, Line 6:
    cannot find symbol symbol  : method length() location: class java.lang.String[] j = input.length();       
    Function calculate, Line 26:
    cannot find symbol symbol  : method subString(int,int) location: class java.lang.String[]           
    result.addValue(input.subString(0,EndIndex));                                      ^
    Function calculate, Line 34:
    cannot find symbol symbol  : method subString(int,int) location: class java.lang.String[]                result.addValue(input.subString(StartIndex,EndIndex));                                              ^
    Function calculate, Line 40:
    cannot find symbol symbol  : method subString(int,int) location: class java.lang.String[]                result.addValue(input.subString(StartIndex,EndIndex));                                              ^ Note: /usr/sap/D03/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Mapd66a3a60002911e09ba9e41f132d6b68/source/com/sap/xi/tf/_MM_MT_COMS_TO_ZME_CRE_CHG_CONTRACT_.java uses or overrides a deprecated API. Note: Recompile with -Xlint:deprecation for details. Note: /usr/sap/D03/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Mapd66a3a60002911e09ba9e41f132d6b68/source/com/sap/xi/tf/_MM_MT_COMS_TO_ZME_CRE_CHG_CONTRACT_.java uses unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details. 4 errors

  • Substr and instr for variables assginement in a csv file

    Hi gurus
    Belows is my input csv file like with no fixedl enght
    vinput_file:
    WESTERN SAHARA,Moroccan Dirham,MAD,504,2,
    YEMEN,Yemeni Rial,YER,886,2,
    ZAMBIA,Zambian Kwacha,ZMW,967,2,
    ZIMBABWE,Zimbabwe Dollar,ZWL,932,2,
    and i want to assign 3 letter alphabetical to DESC and the 3 digit numerical to CODE
    CODE := SUBSTR(vinput_rec,1,INSTR(vinput_file,',',1,1)-1);
    DESC := SUBSTR(vinput_rec, INSTR(vinput_file,',',1,1)+1);
    can anyone help me please with the above kindly

    Hi,
    Sorry, it's not clear what you want.
    975482 wrote:
    Hi gurus
    Belows is my input csv file like with no fixedl enghtIf you read the file as an external table, each comma-delimited substring will be a column. It should be easy to use SUBSTR on those columns
    vinput_file:
    WESTERN SAHARA,Moroccan Dirham,MAD,504,2,
    YEMEN,Yemeni Rial,YER,886,2,
    ZAMBIA,Zambian Kwacha,ZMW,967,2,
    ZIMBABWE,Zimbabwe Dollar,ZWL,932,2,
    and i want to assign 3 letter alphabetical to DESC and the 3 digit numerical to CODE
    CODE := SUBSTR(vinput_rec,1,INSTR(vinput_file,',',1,1)-1);
    DESC := SUBSTR(vinput_rec, INSTR(vinput_file,',',1,1)+1);
    can anyone help me please with the above kindlyIf str is a comma-delimited string, and you want to the first 3 characters after the N-th comma, then you can use
    SUBSTR ( str
           , 1 + INSTR (str, ',', 1, n)
           , 3
           )Do you need to worry about not having 3 characters between the N-th comma and the next one? What if there are fewer than N commas?
    I hope this answers your question.
    If no, what is your question?
    Does it involve reading a csv file that is not already in a table? Post a small sample file.
    Does your qestion involve parsing strings that are already in a table? Post CREATE TABLE and INSERT statements.
    In any case, post the exact results you want from the given data.
    See the forum FAQ {message"id=9360002}

  • Error inF2F mulitiline scenario using substring

    Hi,
    I am doing a F2F mulitiline scenario using substring
    In AdapterFramework , i am getting this message
    Sender Adapter v1014 for Party '', Service 'YAMAHA_BUSYS':
    Configured at 19:12:31 2008-10-22
    Initialization error: Conversion initialization failed with java.lang.Exception: java.lang.NullPointerException
    Could you please let me know what could be wrong ?
    My content conversion parameters are
    Substr.fieldFixedLengths: 10,10,10,10,10,10,10
    Substr.fieldNames:FirstName,LastName,MiddleName,City,Place,State,Country
    Substr.processFieldNames: fromConfiguration
    Thanks
    Ram

    Hi Ram,
    I think the problem is with the source file
    it should be like this for your case
    Substr.fieldFixedLengths: 10,10,10,10,10,10,10
    Substr.fieldNames:FirstName,LastName,MiddleName,City,Place,State,Country
    Sample file
    FirstName LastName  MiddleNameCity      Place     State     Country 
    Each file length should be 10 and not like this
    FirstName LastName MiddleName City Place State Country  
    Thanks,
    Prakash

  • How to use substring ?

    guys,
    i have to get last 3 char. of the char. string.
    now the problem is, the char. string is all different length. if it was the same i could use SUBSTRING formula. but in my case its all diff. and i have to get last 3 char. from the string .
    what shoud i use ?

    Hi Honar,
    Try this
    //<varname>- value whose last 3 character you want to read
    Data : v_length type n length 3,
              v_value_last3 like <varname> .
    *****read the length of value
    v_length = STRLEN(  <varname> ) .
    *****subtract string length index by 3 character
    v_length  = v_length - 3 .
    *****read last 3 character of value
    v_value_last3  =  <varname>+v_length(3) .
    v_value_last3 will have last 3 character
    Please follow spaces as in code .
    This will work .
    Regards,
    Jaya Tiwari

  • (Sysdate-1) in filename using scheduler and ftp

    Hello,
    I'm having a little problem with BI Publisher.
    What i am trying to do is use the sysdate-1 in the filename when using the scheduler in BIP.
    I found out that for using the regular date there are functions like %d %m %y, so obviously the first thing i tried was using the %d-1 but that didn't work :(
    Then i went looking on the internet and found the following article:
    http://obiee-bip.blogspot.com/2010/05/dynamic-delivery-file-naming-in-bi.html
    This mentions things like:
    dd : CAST( DAYOFMONTH(NOW()) AS CHAR) ( ex, 01 - 31)
    mon : CAST( SUBSTRING(MONTHNAME(NOW()) FROM 1 FOR 3) AS CHAR) (ex, Jan - Dec)
    yyyy : CAST( YEAR(NOW()) AS CHAR) (ex, 2006,2010)
    But when i use those in the same filename field then it just displays the string as text in the filename.
    Could someone tell me what i am doing wrong, or what i need to do to make this work?
    Thanks in advance
    BIP version : Oracle BI Publisher 10.1.3.4.1
    Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
    PL/SQL Release 10.2.0.4.0 - Production
    "CORE     10.2.0.4.0     Production"
    TNS for HPUX: Version 10.2.0.4.0 - Production
    NLSRTL Version 10.2.0.4.0 - Production

    Hi Raafje,
    Like I've already discussed in my Blog ,Using Date Expressions on Filenames of Burst Query has its own limitations. This date expression that you have tried for sysdate-1 (%d-1%m%y) will not hold good to the requirement. Anyways you can resolve the issue using other work arounds.
    Method I (Using CAST and DATE Functions)
    1.Previous Day -> CAST(DAYOFMONTH(TIMESTAMPADD(SQL_TSI_DAY, -1, CURRENT_DATE)) AS CHAR)
    2.Month of Previous Day -> CAST(MONTH(TIMESTAMPADD(SQL_TSI_DAY, -1, CURRENT_DATE ) ) AS CHAR)
    3.Year of Previous Day -> CAST(YEAR(TIMESTAMPADD(SQL_TSI_DAY, -1, CURRENT_DATE)) AS CHAR)
    Sample Code
    +'ReportName'||'-'||CAST( DAYOFMONTH(TIMESTAMPADD(SQL_TSI_DAY, -1, CURRENT_DATE)) AS CHAR)||'-'||CAST(MONTH(TIMESTAMPADD(SQL_TSI_DAY, -1, CURRENT_DATE ) ) AS CHAR)||'-'||CAST( YEAR(TIMESTAMPADD(SQL_TSI_DAY, -1, CURRENT_DATE)) AS CHAR)||'.pdf'+
    Method II (Using Server Variables)
    1. Create a Dynamic Repository Variable like Previous_Date(Non-System Session variables can also be used)
    2. Create a Initialization blocks
    In Data Source Section - Edit Data Source and place the below query
    Select TO_CHAR(SYSDATE-1,'MM/DD/YYYY')
    FROM Dual (you can use any date format as required)
    3. In Variable Target Section
    Edit Target -
    Give the Name as Previous_Date (as you created in Step1) and Enable the Radio Button as Dynamic
    Place date in Default Value like '9/22/2010'
    4. Now use this Repository Variable in the filename parameter of the burst query as VALUEOF("Previous_Date") for Repository Variable
    and VALUEOF(NQ_SESSION.Previous_Date) in case you have created a session variable for the query
    Thanks & Regards,
    Goushalya
    http://obiee-bip.blogspot.com/2010/05/dynamic-delivery-file-naming-in-bi.html
    Edited by: Goushalya on Sep 29, 2011 7:09 AM

Maybe you are looking for

  • How to print text in a new line in a text view.

    Hi, I have a situation where I need to print two lines inside a text view. for eg:     Bye Bye < user name>               Have a nice day!! I am assigning this to the context by conactenating   Bye Bye   < user name>   Have a nice day!!. But the text

  • DirectX problems - Onboard video problems? K9VGM-V

    I am having problems with loading the new Nero suite (7.xx) version.  It keeps coming back with a DirectX error.  The guys at Ahead are telling the same thing.  My question is:  Can I use DirectX 9.0c using the onboard video?  I don't know what bios

  • How do I remove songs from ipad?

    and leave them on the cloud?

  • ITunes for Books, comment field to small for synopsis. Any solutions?

    iTunes is still a very centric music app. now that it can hold books I was trying to add synopsis of the books I have (useful when you have several hundred or thousand) The obvious choice "Comments" field is limited *in the interface* to 255 char whi

  • Does the iPad mini do the samethings as a computer?

         My mother got me a Ipad mini to show that she's proud of me...but i told her i didn't want it since i already have an Ipod, and that we don't have the extra money for it. She told me it was either the Ipad mini or a computer. That's when i was w