R trim function in xsl and concatenate problem

Hi,
I have a situation where i need to trim the spaces on right side of the element content using XSL.
Please see the following xml.
<BookStore>
<artist>Bob Dylan</artist>
<country>USA</country>
<company>Columbia</company>
<Title>Book Name1 </Title>
<Title>Book Name2</Title>
<Title> Book Name3 </Title>
<Title> Book Name4</Title>
</BookStore>
I need to trim the space on the right side of the title element and need to add a + sign at the end of the each title and then need to concatenate them into a single element "booknames."
That means the booknames should contain value of
<booknames>Book Name1+Book Name2+ Book Name+Book Name4</booknames>
Finally the above xml should look like,
<BookStore>
<artist>Bob Dylan</artist>
<country>USA</country>
<company>Columbia</company>
<booknames>Book Name1+Book Name2+ Book Name+Book Name4</booknames>
</BookStore>
I know we have a normalize function in xsl. But we don't have a rtrim function in xsl. And the difficulty over here is we should read the title element in recursion and them trim space and then add+ then concatenate.
can anyone guide me how to go about it in trimming the space in recursion.
Thanks.

Hi,
I have a situation where i need to trim the spaces on right side of the element content using XSL.
Please see the following xml.
<BookStore>
<artist>Bob Dylan</artist>
<country>USA</country>
<company>Columbia</company>
<Title>Book Name1 </Title>
<Title>Book Name2</Title>
<Title> Book Name3 </Title>
<Title> Book Name4</Title>
</BookStore>
I need to trim the space on the right side of the title element and need to add a + sign at the end of the each title and then need to concatenate them into a single element "booknames."
That means the booknames should contain value of
<booknames>Book Name1+Book Name2+ Book Name+Book Name4</booknames>
Finally the above xml should look like,
<BookStore>
<artist>Bob Dylan</artist>
<country>USA</country>
<company>Columbia</company>
<booknames>Book Name1+Book Name2+ Book Name+Book Name4</booknames>
</BookStore>
I know we have a normalize function in xsl. But we don't have a rtrim function in xsl. And the difficulty over here is we should read the title element in recursion and them trim space and then add+ then concatenate.
can anyone guide me how to go about it in trimming the space in recursion.
Thanks.

Similar Messages

  • XSL and getNodeValue() problem

    I'm having a problem get an output that I expect. If I start with xml like this:
    <?xml version="1.0" encoding="UTF-8"?>
    <ROWSET>
    <ROW num="1">
    <PUBLISH_DOCUMENT_ID>3</PUBLISH_DOCUMENT_ID>
    <TOPIC_ID>2</TOPIC_ID>
    <SECTION_ID>1</SECTION_ID>
    </ROWSET>
    And apply XSL like this:
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" indent="yes"/>
    <xsl:template match="/">
    <CONTENT>
    <xsl:apply-templates select="/ROWSET/ROW"/>
    </CONTENT>
    </xsl:template>
    <xsl:template match="ROW">
    <URL>http://healthecare140:7601/medical/medicalDocument.jsp?page=medical&;topic=<xsl:value-of
    select="TOPIC_ID"/>&;item=<xsl:value-of select="SECTION_ID"/>
    </URL>
    </xsl:template>
    </xsl:stylesheet>
    I get this (as expected):
    <CONTENT>
    <URL>
    http://localhost:7601/medical/medicalDocument.jsp?page=medical&;topic=3&;item=1
    </URL>
    </CONTENT>
    BUT, then when I run this code:
    NodeList nodes = doc.getElementsByTagName("URL");
    if(nodes.getLength() > 0) {
    url = nodes.item(0).getFirstChild().getNodeValue();
    System.out.println("URL ===== " + url);
    I get this result??????:
    URL ===== http://healthecare140:7601/medical/medicalDocument.jsp?page=medical <<<--------what happend to the "&;topic=3&;item=1" part of the nodeValue?
    Any ideas on what I'm doing wrong?
    thanks,
    chad.
    null

    I have discovered some things that I would like to share.
    There are actually multiple child nodes, the first being what was displayed. So you need to either roll through all of the children nodes and build the text or do this (normalize the node):
    Node n = nodes.item(0);
    n.normalize();
    url = normalize(n.getFirstChild()
    .getNodeValue());
    .normalize() is the key!
    later,
    chad.

  • Query with trim function running more than 15 hours..

    Hi,
    I have one select query which is running more than 15 hours.I have many trim() functions in that.and i have index for some columns for the tables that i used in that query.but it is not considering those indexes..
    select
    DISTINCT
    trim(A.x) x,
    trim(B.y) y,....... from A,B
    Can anyone tell why this query is taking more time?and is there any other way for using the trim function?
    Thanks in advance..

    Note the name of this forum is "SQL Developer *(Not for general SQL/PLSQL questions)*", so only for issues with the SQL Developer tool. Please post these questions under the dedicated [SQL And PL/SQL|https://forums.oracle.com/forums/forum.jspa?forumID=75] forum.
    Regards,
    K.

  • Custom trim function

    Hi,
    public String myTrim(String str)
       return str.replace(/^\s*|\s*$/g,"");
    }I got this custom trim function from web,and it is working fine.
    can anybody plz tell me how does the code str.replace(/^\s*|\s*$/g,"");trims the string.

    You can write a trim function using regular expressions. What you have posted is code that uses regular expressions (but it doesn't compile) . For more info see:
    http://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Pattern.html
    and
    http://www.regular-expressions.info
    /Kaj

  • How do I trim video clips in Quicktime Player?  The "trim" function under the edit menu is gray and won't do anything.

    I am trying to edit video clips from about two yesrs worth of video for an iMovie.  I don't want to load all of the clips into a new event because it would be hours worth of video.  I don't even know if iMovie could handle it.  I have tried to use Quicktime Player to do this, but the "trim" function under the edit menu is gray and won't let me do anything.  What can I do?

    Thank you so much!
    It works!
    I used this code...
    videoDisplay.addEventListener(VideoEvent.COMPLETE, videoCompleteHandler);
    private function videoCompleteHandler(event:VideoEvent):void {
         hideVideo();
    private function hideVideo():void {
         this.visible = false;
         this.includeInLayout = false;
    I have a follow up question...
    What is the syntax to target the video player from a different component to add an event listener to a button in the Sharing Widget called Back to Video?
    Thanks!!
    DK

  • Macbook Pro 2010 17" model and SSD and Trim Function?

    If you purchase the Apple SSD drive 256 model when you buy the new macbook pro 17", does this SSD allow the Trim Functionality? Do you have to schedule the trim fuction with this drive or does the OS do it for you?

    Use SuperDuper or Carbon Copy Cloner to make a bootable clone of your SSD on an external hard drive. The cloning process with either utility is self-explanatory, a matter of half a dozen or fewer clicks. Cloning back again requires only that you boot to the external drive, then open CCC or SD and repeat the process in the opposite direction. Nothing could be simpler.
    Any FireWire or USB external drive that is known to be bootable in OS X will do. But avoid Western Digital external drives — they are very often problematical because of firmware that is preinstalled on them and is miserable to remove.
    As for whether you can wipe an SSD on a Mac as completely as you can on a Windoze box, I can't answer that.

  • XSL-TEXT: how to import subtemplates in XSL and use xdofx tags?

    Hi,
    I am working on a BI Publisher Report (XML Publisher 5.6.3 in EBS) to generate labels on a label printer. The output needs to be in plain text format, therefore I decided to use the XSL-TEXT template and create my own XSL translation.
    In principle this works pretty fine, but there are two things that worry me a bit:
    1. Does anybody know how I could import other XSL files, like sub-templates in RTF? The problem I have is that I don't know the URI or the sub-template. At the moment I store those other XSL files in the OA_MEDIA folder, but this is not really nice. In RFT you can refer to subtemplates with some xdofx commands... this brings me to my second question:
    2. In RTF templates you can use the Oracle specific XML tags, including the <xdofx:%> and <xdoxslt:%> tags. Does anybody know if and how I can use them in XSL templates?
    Any ideas are highly appreciated!
    regards,
    David.

    Hi Vetsrini,
    1. but what is the absolute path for my subtemplates if I store them in the Template Manager? How can I refer to them?
    This is what the manual says for RTFs:
    >
    Enter the Import Syntax in the Primary Template
    Import the subtemplate to the primary template by entering the following syntax in the
    primary template. The import syntax tells the XML Publisher engine where to find the
    subtemplate RTF in the Template Manager. This syntax may be entered anywhere in the
    template prior to the call-template syntax:
    <?import:xdo://APPCODE.TEMPLATE_CODE.lang.TERR?>
    where
    APPCODE is the Application code you assigned to the subtemplate in the Template
    Manager. For example, if you associated this template with the Receivables application,
    enter "AR".
    TEMPLATE_CODE is the template Code you assigned to the subtemplate in the Template
    Manager. For example, AR_CommonComponents.
    >
    sounds good and easy to me. But I don't have a RTF template. I have just a plain XSLT and those XML Publisher tags do not work there. So how do I get the absolute path of my XSLT templates stored in the Template Manager?
    2. I've included the namespace, no error anymore. But the syntax does not result in actions:
    <xsl:value-of select="xdoxslt:substr((PRODUCT_NAME),1,2)"/>
    {code}
    This does not substring() my string, the full string is returned. But anyway, I don't get an error message anymore. Maybe I just used the wrong XDOXSLT function... I need to search for a list of XDOXSLT functions, but that's not very urgent for now. I think I can do the most with plain XSL and inside the DB itself.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • Error when trying to use trim function

    when i try to use trim function on a column it gives me following error for the below query
    select trim(first_name) name from table1@pa1;
    ORA-28500: connection from ORACLE to a non-Oracle system returned this message:
    DSNT408I SQLCODE = -440, ERROR: NO FUNCTION BY THE NAME TRIM HAVING COMPATIBLE ARGUMENTS WAS FOUND IN THE CURRENT PATH DSNT418I SQLSTATE = 42884 SQLSTATE RETURN CODE DSNT415I SQLERRP = DSNXORFN SQL PROCEDURE DETECTING ERROR DSNT416I SQLERRD = -100 0 0 -1 0 0 SQL DIAGNOSTIC INFORMATION DSNT416I SQLERRD = X'FFFFFF
    any idea gurus ???Thanks

    This might work:
    select trim(first_name) name from
      (select first_name from table1@pa1);The problem is that pa1 is a non-Oracle database and does not have a trim function. It may have another function that does the same thing but it's not called TRIM.

  • Match in ranges created through 'address' and 'concatenate'

    My goal is to search in an address range for a specific match (=match(2, b2:b5). I created the address range through a concatenate function of two cells (=concatenate("b2",":","b5")). The outcome is displayed correctly (B2:B5), but I can't use match on that result ("2 is not found in B2:B5").
    The problem is that match does not work on a "concatenate", meaning:
    * MATCH(2,B2:B6) - works
    * MATCH(2,CONCATENATE("B2",":","B6")) - does not work
    I use the address function to create B2 and B6 - which works, e.g.  ADDRESS(B1+1;2) = B2 (assuming that B1=1)
    Any idea how to convert the results of a concatenate to use it in match, vlookup, hlookup?
    Thanks
    Josef

    Most of the time, I build formulas by pieces and it's only when every piece behave flawlessly which I gather them.
    In this case it's not doable because OFFSET is used to give a range so we can't use it solely.
    When I meet this case, I test a reduced shape.
    =OFFSET($A$1,1,1) is supposed to return the value of the first cell of the range to define.
    =OFFSET($A$1,1+5-1,1)  is supposed to return the value of the last cell of the range to define.
    When they are checked, it's time to build the complete formula which is supposed to return the range :
    =OFFSET($A$1,1,1,5,1)
    In fact, when we write it this way, it returns the value of the 1st cell in the range.
    Easy ways to check that it's OK are to encapsulate it in formulas like :
    =SUM(OFFSET($A$1,1,1,5,1))
    =COUNT(OFFSET($A$1,1,1,5,1))
    As we are trying to build a formula returning what would be retuned by
    =MATCH(6;B2:B6)
    We just need to make a simple replacement:
    =MATCH(6;OFFSET($A$1,1,1,5,1))
    Yvan KOENIG (VALLAURIS, France) mercredi 25 janvier 2012
    iMac 21”5, i7, 2.8 GHz, 12 Gbytes, 1 Tbytes, mac OS X 10.6.8 and 10.7.2
    My Box account  is : http://www.box.com/s/00qnssoyeq2xvc22ra4k

  • I am not able to launch FF everytime i tr to open it, it says FF has to submit a crash report, i even tried doing that and the report was submitted too, but stiil FF did not start, and the problem still persists, please help me solve this issue in English

    Question
    I am not able to launch FF everytime i try to open it, it says FF has to submit a crash report,and restore yr tabs. I even tried doing that and the report was submitted too, but still FF did not start, and the problem still persists, please help me solve this issue
    '''(in English)'''

    Hi Danny,
    Per my understanding that you can't get the expect result by using the expression "=Count(Fields!TICKET_STATUS.Value=4) " to count the the TICKET_STATUS which value is 4, the result will returns the count of all the TICKET_STATUS values(206)
    but not 180, right?
    I have tested on my local environment and can reproduce the issue, the issue caused by you are using the count() function in the incorrect way, please modify the expression as below and have a test:
    =COUNT(IIF(Fields!TICKET_STATUS.Value=4 ,1,Nothing))
    or
    =SUM(IIF(Fields!TICKET_STATUS=4,1,0))
    If you still have any problem, please feel free to ask.
    Regards,
    Vicky Liu
    Vicky Liu
    TechNet Community Support

  • TS3276 An email sent from my iMac has a button linked to a clip hosted on Vimeo. When received, the link functions on iMac and iPad, but opens a window of app icons on iPhone and iPod touch. Any ideas what's wrong?

    An email sent from my iMac has a button linked to a clip hosted on Vimeo. When received, the link functions on iMac and iPad, but opens a window of app icons on iPhone and iPod touch. Any ideas what's wrong?

    For anyone else reading this thread, it is worth knowing that sometimes an email is, or can be, corrupted thereby jamming the works. The solution above is good, but I just wanted to suggest another one.
    If the problem arises, go to an online mail access service, such as Mail2Web.com and login to you mail account there and delete the offending message.
    Problem solved.
    And George, as this is all entirely voluntary, whinging about no takers may not endear people to you. Besides which, a few minutes of searching on Google would have found you a number of solutions.

  • PL/SQL function body returning SQL Query Problem

    I have wandered around the forums and found quite a bit of helpful information that has gotten me to the point I am now at. Unfortuntely, PL/SQL is not my strongest point and I am getting an error when I attempt to run my report.
    This is what I have for my package:
    CREATE OR REPLACE PACKAGE LIB2.report_query
    is
    function create_report2(v1 IN varchar2) RETURN VARCHAR2;
    end report_query;
    CREATE OR REPLACE PACKAGE BODY LIB2.report_query
    as
    function create_report2(v1 in varchar2) return varchar2
    is
    l_vc_format HTMLDB_APPLICATION_GLOBAL.VC_ARR2 := HTMLDB_UTIL.STRING_TO_TABLE(v1);
    l_format varchar2(255) := HTMLDB_UTIL.TABLE_TO_STRING(l_vc_format);
    q1 varchar2(32767) := ' ';
    begin
    q1 :=
    'select b.BOOK_ID, bk.book_id bkid, bkk.book_id bkkid, b.TITLE, b.SUBTITLE, b.SERIES, b.VOLUME, b.ISBN, f.FORMAT_RET, b.DESCRIPTION, .PUBLISHED,'
    ||'b.PURCHASED_FROM, b.COMMENTS, b.WEBSITE, c.LENGTH_MINS, stragg(p.last_name || '', '' || p.first_name) Author, '
    ||'stragg(p.person_id) person_id, '
    ||'pb.name PUBLISHER, decode(b.abridged, ''Y'',''Abridged'',''N'',''Unabridged'') Abridged,'
    ||'(nvl(d.disk01,0)+nvl(d.disk02,0)+nvl(d.disk03,0)+nvl(d.disk04,0)+nvl(d.disk05,0)+nvl(d.disk06,0)+nvl(d.disk07,0)+nvl(d.disk08,0)+'
    ||'nvl(d.disk09,0)+nvl(d.disk10,0)+nvl(d.disk11,0)+nvl(d.disk12,0)+nvl(d.disk13,0)+nvl(d.disk14,0)+nvl(d.disk15,0)+nvl(d.disk16,0)+nvl(d.disk17,0)+'
    ||'nvl(d.disk18,0)+nvl(d.disk19,0)+nvl(d.disk20,0)+nvl(d.disk21,0)+nvl(d.disk22,0)+nvl(d.disk23,0)+nvl(d.disk24,0)+nvl(d.disk25,0)+nvl(d.disk26,0)+'
    ||'nvl(d.disk27,0)+nvl(d.disk28,0)+nvl(d.disk29,0)+nvl(d.disk30,0)+nvl(d.disk31,0)+nvl(d.disk32,0)+nvl(d.disk33,0)+nvl(d.disk34,0)+nvl(d.disk35,0)+'
    ||'nvl(d.disk36,0)+nvl(d.disk37,0)+nvl(d.disk38,0)+nvl(d.disk39,0)+nvl(d.disk40,0)+nvl(d.disk41,0)+nvl(d.disk42,0)+nvl(d.disk43,0)+nvl(d.disk44,0)+'
    ||'nvl(d.disk45,0)+nvl(d.disk46,0)+nvl(d.disk47,0)+nvl(d.disk48,0)+nvl(d.disk49,0)+nvl(d.disk50,0)) total_tracks'
    ||'from book b, '
    ||'book bk,'
    ||'book bkk,'
    ||'person p,'
    ||'lkup_book_author la,'
    ||'lkup_book_publisher lp,'
    ||'lkup_book_format lkf,'
    ||'format f,'
    ||'publisher pb,'
    ||'conversion_info_audio c,'
    ||'lkup_book_disk_info d'
    ||'where b.book_id = la.book_id'
    ||'and b.book_id = bk.book_id'
    ||'and b.book_id = bkk.book_id'
    ||'and p.person_id = la.author_id'
    ||'and b.book_id = lp.book_id'
    ||'and b.book_id = c.book_id'
    ||'and b.book_id = d.book_id'
    ||'and b.book_id = lkf.book_id'
    ||'and lkf.format_id = f.format_id'
    ||'and pb.publisher_id(+) = lp.publisher_id'
    ||'and b.wishlist = ''N'''
    ||'and (upper(b.book_id) like ''%'' || upper(:P40_SEARCH) || ''%'''
    ||'or upper(b.title) like ''%'' || upper(:P40_SEARCH) || ''%'''
    ||'or upper(b.subtitle) like ''%'' || upper(:P40_SEARCH) || ''%'''
    ||'or upper(b.series) like ''%'' || upper(:P40_SEARCH) || ''%'''
    ||'or upper(b.volume) like ''%'' || upper(:P40_SEARCH) || ''%'''
    ||'or upper(b.isbn) like ''%'' || upper(:P40_SEARCH) || ''%'''
    ||'or upper(b.format) like ''%'' || upper(:P40_SEARCH) || ''%'''
    ||'or upper(b.description) like ''%'' || upper(:P40_SEARCH) || ''%'''
    ||'or upper(b.published) like ''%'' || upper(:P40_SEARCH) || ''%'''
    ||'or upper(b.purchased_from) like ''%'' || upper(:P40_SEARCH) || ''%'''
    ||'or upper(b.comments) like ''%'' || upper(:P40_SEARCH) || ''%'''
    ||'or upper(b.website) like ''%'' || upper(:P40_SEARCH) || ''%'''
    ||'or upper(p.last_name) like ''%'' || upper(:P40_SEARCH) || ''%'''
    ||'or upper(p.first_name) like ''%'' || upper(:P40_SEARCH) || ''%'''
    ||'or upper(pb.name) like ''%'' || upper(:P40_SEARCH) || ''%'''
    ||'or upper(:P40_SEARCH) is null)'
    ||'and ((upper(b.title) like ''%'' || upper(:P40_TITLE) || ''%'' or upper(:P40_TITLE) is null))'
    ||'and ((upper(b.series) like ''%'' || upper(:P40_SERIES) || ''%'' or upper(:P40_SERIES) is null))'
    ||'and ((upper(p.last_name) like ''%'' || upper(:P40_LASTNAME) || ''%'' or upper(:P40_LASTNAME) is null))'
    ||'and ((upper(p.first_name) like ''%'' || upper(:P40_FIRSTNAME) || ''%'' or upper(:P40_FIRSTNAME) is null))'
    ||'and ((upper(f.format_ret) in (upper(l_vc_format)) or upper(:P40_FORMAT) is null))'
    ||'group by b.BOOK_ID, bk.book_id, bkk.book_id, b.TITLE, b.SUBTITLE, b.SERIES, b.VOLUME, b.ISBN, f.FORMAT_ret, b.DESCRIPTION, '
    ||'b.PUBLISHED, b.PURCHASED_FROM, b.COMMENTS, b.WEBSITE, c.LENGTH_MINS, pb.name, b.abridged, '
    ||'(nvl(d.disk01,0)+nvl(d.disk02,0)+nvl(d.disk03,0)+nvl(d.disk04,0)+nvl(d.disk05,0)+nvl(d.disk06,0)+nvl(d.disk07,0)+nvl(d.disk08,0)+'
    ||'nvl(d.disk09,0)+nvl(d.disk10,0)+nvl(d.disk11,0)+nvl(d.disk12,0)+nvl(d.disk13,0)+nvl(d.disk14,0)+nvl(d.disk15,0)+nvl(d.disk16,0)+nvl(d.disk17,0)+'
    ||'nvl(d.disk18,0)+nvl(d.disk19,0)+nvl(d.disk20,0)+nvl(d.disk21,0)+nvl(d.disk22,0)+nvl(d.disk23,0)+nvl(d.disk24,0)+nvl(d.disk25,0)+nvl(d.disk26,0)+'
    ||'nvl(d.disk27,0)+nvl(d.disk28,0)+nvl(d.disk29,0)+nvl(d.disk30,0)+nvl(d.disk31,0)+nvl(d.disk32,0)+nvl(d.disk33,0)+nvl(d.disk34,0)+nvl(d.disk35,0)+'
    ||'nvl(d.disk36,0)+nvl(d.disk37,0)+nvl(d.disk38,0)+nvl(d.disk39,0)+nvl(d.disk40,0)+nvl(d.disk41,0)+nvl(d.disk42,0)+nvl(d.disk43,0)+nvl(d.disk44,0)+'
    ||'nvl(d.disk45,0)+nvl(d.disk46,0)+nvl(d.disk47,0)+nvl(d.disk48,0)+nvl(d.disk49,0)+nvl(d.disk50,0))';
    RETURN q1;
    EXCEPTION
    WHEN OTHERS THEN
    RETURN q1;
    end create_report2;
    end;
    And here is what I have for my Region Source on my report:
    return lib2.report_query.create_report2(v('P40_FORMAT'));
    Here is my error when I run the page:
    failed to parse SQL query:
    ORA-00936: missing expression
    I have tried the region source line in many variations, this is just my latest one. None of them have worked. I am quite obviously missing something quite important and probably extremely silly. Any ideas?
    Thanks!
    Chrissy

    Chrissy,
    This is what the package returns as a query:
    select b.BOOK_ID, bk.book_id bkid, bkk.book_id bkkid,
    b.TITLE, b.SUBTITLE, b.SERIES, b.VOLUME, b.ISBN, f.FORMAT_RET,
    b.DESCRIPTION, .PUBLISHED,b.PURCHASED_FROM, b.COMMENTS, b.WEBSITE,
    c.LENGTH_MINS, stragg(p.last_name || ', ' || p.first_name) Author,
    stragg(p.person_id) person_id, pb.name PUBLISHER, decode(b.abridged,
    'Y','Abridged','N','Unabridged') Abridged,
    (nvl(d.disk01,0)+nvl(d.disk02,0)+nvl(d.disk03,0)+nvl(d.disk04,0)+nvl(d.disk05,0)
    nvl(d.disk06,0)nvl(d.disk07,0)+nvl(d.disk08,0)+nvl(d.disk09,0)+nvl(d.disk10,0)
    nvl(d.disk11,0)nvl(d.disk12,0)+nvl(d.disk13,0)+nvl(d.disk14,0)+nvl(d.disk15,0)
    nvl(d.disk16,0)nvl(d.disk17,0)+nvl(d.disk18,0)+nvl(d.disk19,0)+nvl(d.disk20,0)
    nvl(d.disk21,0)nvl(d.disk22,0)+nvl(d.disk23,0)+nvl(d.disk24,0)+nvl(d.disk25,0)
    nvl(d.disk26,0)nvl(d.disk27,0)+nvl(d.disk28,0)+nvl(d.disk29,0)+nvl(d.disk30,0)
    nvl(d.disk31,0)nvl(d.disk32,0)+nvl(d.disk33,0)+nvl(d.disk34,0)+nvl(d.disk35,0)
    nvl(d.disk36,0)nvl(d.disk37,0)+nvl(d.disk38,0)+nvl(d.disk39,0)+nvl(d.disk40,0)
    nvl(d.disk41,0)nvl(d.disk42,0)+nvl(d.disk43,0)+nvl(d.disk44,0)+nvl(d.disk45,0)
    nvl(d.disk46,0)nvl(d.disk47,0)+nvl(d.disk48,0)+nvl(d.disk49,0)+nvl(d.disk50,0)) total_tracksfrom book b,
    book bk,book bkk,person p,lkup_book_author la,lkup_book_publisher lp,
    lkup_book_format lkf,format f,publisher pb,conversion_info_audio c,
    lkup_book_disk_info dwhere b.book_id = la.book_idand b.book_id = bk.book_idand b.book_id = bkk.book_idand p.person_id = la.author_idand
    b.book_id = lp.book_idand b.book_id = c.book_idand b.book_id = d.book_idand
    b.book_id = lkf.book_idand lkf.format_id = f.format_idand pb.publisher_id(+) = lp.publisher_idand
    b.wishlist = 'N'and (upper(b.book_id) like '%' || upper(:P40_SEARCH) || '%'
    or upper(b.title) like '%' || upper(:P40_SEARCH) || '%'or upper(b.subtitle) like '%' ||
    upper(:P40_SEARCH) || '%'or upper(b.series) like '%' || upper(:P40_SEARCH) || '%'or
    upper(b.volume) like '%' || upper(:P40_SEARCH) || '%'or upper(b.isbn) like '%' ||
    upper(:P40_SEARCH) || '%'or upper(b.format) like '%' || upper(:P40_SEARCH) || '%'or upper(b.description) like '%' || upper(:P40_SEARCH) || '%'or upper(b.published)
    like '%' || upper(:P40_SEARCH) || '%'or upper(b.purchased_from) like '%' ||
    upper(:P40_SEARCH) || '%'or upper(b.comments) like '%' || upper(:P40_SEARCH)
    || '%'or upper(b.website) like '%' || upper(:P40_SEARCH) || '%'or
    upper(p.last_name) like '%' || upper(:P40_SEARCH) || '%'or upper(p.first_name)
    like '%' || upper(:P40_SEARCH) || '%'or upper(pb.name) like '%' ||
    upper(:P40_SEARCH) || '%'or upper(:P40_SEARCH) is null)and
    ((upper(b.title) like '%' || upper(:P40_TITLE) || '%' or
    upper(:P40_TITLE) is null))and ((upper(b.series) like '%' ||
    upper(:P40_SERIES) || '%' or upper(:P40_SERIES) is null))and
    ((upper(p.last_name) like '%' || upper(:P40_LASTNAME) || '%' or
    upper(:P40_LASTNAME) is null))and ((upper(p.first_name) like '%' ||
    upper(:P40_FIRSTNAME) || '%' or upper(:P40_FIRSTNAME) is null))and
    ((upper(f.format_ret) in (upper(l_vc_format)) or upper(:P40_FORMAT) is null))
    group by b.BOOK_ID, bk.book_id, bkk.book_id, b.TITLE, b.SUBTITLE, b.SERIES, b.VOLUME,
    b.ISBN, f.FORMAT_ret, b.DESCRIPTION, b.PUBLISHED, b.PURCHASED_FROM, b.COMMENTS, b.WEBSITE,
    c.LENGTH_MINS, pb.name, b.abridged, (nvl(d.disk01,0)+nvl(d.disk02,0)+nvl(d.disk03,0)
    nvl(d.disk04,0)nvl(d.disk05,0)+nvl(d.disk06,0)+nvl(d.disk07,0)+nvl(d.disk08,0)
    nvl(d.disk09,0)nvl(d.disk10,0)+nvl(d.disk11,0)+nvl(d.disk12,0)+nvl(d.disk13,0)
    nvl(d.disk14,0)nvl(d.disk15,0)+nvl(d.disk16,0)+nvl(d.disk17,0)+nvl(d.disk18,0)
    nvl(d.disk19,0)nvl(d.disk20,0)+nvl(d.disk21,0)+nvl(d.disk22,0)+nvl(d.disk23,0)
    nvl(d.disk24,0)nvl(d.disk25,0)+nvl(d.disk26,0)+nvl(d.disk27,0)+nvl(d.disk28,0)
    nvl(d.disk29,0)nvl(d.disk30,0)+nvl(d.disk31,0)+nvl(d.disk32,0)+nvl(d.disk33,0)
    nvl(d.disk34,0)nvl(d.disk35,0)+nvl(d.disk36,0)+nvl(d.disk37,0)+nvl(d.disk38,0)
    nvl(d.disk39,0)nvl(d.disk40,0)+nvl(d.disk41,0)+nvl(d.disk42,0)+nvl(d.disk43,0)
    nvl(d.disk44,0)nvl(d.disk45,0)+nvl(d.disk46,0)+nvl(d.disk47,0)+nvl(d.disk48,0)
    nvl(d.disk49,0)nvl(d.disk50,0))
    This query will never work. I marked only couple of errors you have there. Actually,
    I meant "formating" errors rather than "syntactical" errors. You are missing spaces
    all over the place. This is why I suggested to use a CLOB column in a test table
    to return the query for debugging purposes - this is how I do it at least, when I need
    to escape and concatenate a lot of code.
    If you are referencing item values from a user session in a function or a procedure,
    then you need to use the v('ITEM') syntax instead of :ITEM syntax. However, if the
    output of this procedure will be used as a function returning SQL query, you will
    be fine with :ITEM.
    Denes Kubicek
    http://deneskubicek.blogspot.com/
    http://htmldb.oracle.com/pls/otn/f?p=31517:1
    -------------------------------------------------------------------

  • How do I use the TRIM function in my Query?

    I have a field that has called AP.service_user_defined_1 that houses a Code the code is like Alpha Num ie "AA01" then it has about 30 to 40 whites spaces and then the description of what the code means. I need to have the description to show in my report I don't necessarily need the code but I do need the description I tried putting the TRIM Function in as below and it will not work what do I need to do to correct this?? I need help ASAP this is due today! Thanks for any help!
    SELECT DISTINCT
              A1.AUTH_NUMBER,
    PM.LAST_NAME,
              A1.AUTH_TYPE,
              A1.PLACE_OF_SERVICE,
              A1.OVERALL_STATUS,
              A1.CLOSED_REASON,
              A1.DENIED_REASON,
    Case
    when A1.DENIED_REASON in ('HS001','HS002') then 'MED NECESS'
    when A1.DENIED_REASON in ('HS004','HS005','HS006','HS007','HS008','HS013','HS014','HS016','HS017','HS019','HS020') then 'Admin Denial'
    when A1.DENIED_REASON is NUll and ap.advisor_decision = 'AAPPR' then 'Approved'
    else 'Unknown'
    end DENIED,
    A1.admit_primary_date,
    A1.service_admit_type AS "IP ADMIT TYPE",
    A1.service_user_defined_1 AS "OP Serv Type",
    Trim (leading ('AA01                 ',)from dual,
    ap.contact_date,
    AP.decision_date,
    AP.ADVISOR_DECISION,
    PM.PROVIDER_ID,
         A1.INSERT_DATETIME,
    TO_CHAR (A1.insert_datetime,'MONTH-YY')AS "Month",
    A1.admit_primary_date,
              A1.ACTIVE_PHYSICIAN_ADVISOR,
              MV.LINE_OF_BUSINESS
    FROM Windsoradm.auth_master a1
    INNER JOIN Windsoradm.auth_phys_advisor ap
    ON a1.auth_number=ap.auth_number
    INNER JOIN windsoradm.prov_master pm
    ON ap.seq_prov_id=pm.seq_prov_id
    LEFT JOIN windsoradm.note_master nm
    ON nm.seq_memb_id=a1.seq_memb_id
    INNER JOIN windsoradm.member_mv mv
    ON mv.seq_memb_id=a1.seq_memb_id
    Where mv.Line_of_Business <>'SFS'
    /*AND A1.PLACE_OF_SERVICE IN ('11','21','22','24')*/
    /*AND a1.active_physician_advisor = 'Y'*/
    /*AND (a1.closed_reason ='A06' OR a1.closed_reason is Null)*/
    AND a1.insert_datetime Between To_Date ('04/01/2012', 'MM/DD/YYYY') and To_Date ('04/30/2012','MM/DD/YYYY')
    ORDER BY 1

    I don't know how to use this within my query I put it in as you suggest and get an error: I'm new to these functions can you show me how within my query I should code it? The field Name is A1.service_user_defined_1 There are about 50 Different Codes in a Drop down list within the application that have a different Code and Different Description it appears that the Codes are all 4 character alpha numeric then about 25 to 45 spaces and then the description. Please show me in my code how to get this I wish there was a table I could link to that housed both code and description but who ever created this did not make life easy. Thanks (I also tried the TRIM but could not get it to work ) I know it is because I do not know how to put it within my code to make it work.
    SELECT DISTINCT
              A1.AUTH_NUMBER,
    PM.LAST_NAME,
              A1.AUTH_TYPE,
              A1.PLACE_OF_SERVICE,
              A1.OVERALL_STATUS,
              A1.CLOSED_REASON,
              A1.DENIED_REASON,
    Case
    when A1.DENIED_REASON in ('HS001','HS002') then 'MED NECESS'
    when A1.DENIED_REASON in ('HS004','HS005','HS006','HS007','HS008','HS013','HS014','HS016','HS017','HS019','HS020') then 'Admin Denial'
    when A1.DENIED_REASON is NUll and ap.advisor_decision = 'AAPPR' then 'Approved'
    else 'Unknown'
    end DENIED,
    A1.admit_primary_date,
    A1.service_admit_type AS "IP ADMIT TYPE",
    A1.service_user_defined_1 AS "OP Serv Type",
    regexp_replace('AA01 Behavioral/Mental Health Service', '^[^ ]+ +')from dual,
    ap.contact_date,
         AP.decision_date,
         AP.ADVISOR_DECISION,
              PM.PROVIDER_ID,
         A1.INSERT_DATETIME,
    TO_CHAR (A1.insert_datetime,'MONTH-YY')AS "Month",
    A1.admit_primary_date,
              A1.ACTIVE_PHYSICIAN_ADVISOR,
              MV.LINE_OF_BUSINESS
    FROM Windsoradm.auth_master a1
    INNER JOIN Windsoradm.auth_phys_advisor ap
    ON a1.auth_number=ap.auth_number
    INNER JOIN windsoradm.prov_master pm
    ON ap.seq_prov_id=pm.seq_prov_id
    LEFT JOIN windsoradm.note_master nm
    ON nm.seq_memb_id=a1.seq_memb_id
    INNER JOIN windsoradm.member_mv mv
    ON mv.seq_memb_id=a1.seq_memb_id
    Where mv.Line_of_Business <>'SFS'
    /*AND A1.PLACE_OF_SERVICE IN ('11','21','22','24')*/
    /*AND a1.active_physician_advisor = 'Y'*/
    /*AND (a1.closed_reason ='A06' OR a1.closed_reason is Null)*/
    AND a1.insert_datetime Between To_Date ('04/01/2012', 'MM/DD/YYYY') and To_Date ('04/30/2012','MM/DD/YYYY')
    ORDER BY 1

  • Using document function in xsl template - not working in BI Publisher

    Hi,
    I have a requirement where I need to display the data in one xml file based on the contents of a second xml. I am using Oracle BI Publisher 10.1.3.4.1 and template used for report generation is xsl-fo.
    1) ReportData.xml - contains the data xml
    2) ReportFilter.xml - contains the display information.
    I need to display the tags in the ReportData.xml based on the presence , absence of different tags in ReportFiler.xml
    I guess one of the option is to declare 2 datasource as use concatenated datasources. However , I am trying to use the "Document" function that is available in xsl transformation to reference the display xml.
    I have tried the different options for using the document function
    *1) <xsl:variable name="filterCheck" select="document('ReportFilter.xml')"/>*
    Errors out saying : XML-22021: (Error) Error parsing external document: 'Access not allowed : file:/
    C:/OracleBI/oc4j_bi/bin/ReportFilter.xml '.
    *2) <xsl:variable name="filterCheck" select="document('file:///C:/OracleBI/xmlp/XMLP/DemoFiles/ReportFilter.xml')" />*
    Errors out saying ; Caused by: oracle.xdo.parser.v2.XPathException: Access not allowed : file:/C:/Or
    acleBI/xmlp/XMLP/DemoFiles/ReportFilter.xml
    *3) <xsl:variable name="filterCheck" select="document('C:/OracleBI/xmlp/XMLP/DemoFiles/ReportFilter.xml')" />*
    Errors out saying : Caused by: java.net.MalformedURLException: unknown protocol: c
    at oracle.xdo.parser.v2.XSLStylesheet.flushErrors(XSLStylesheet.java:153
    *4)<xsl:variable name="filterCheck" select="document('file:/C:/OracleBI/xmlp/XMLP/DemoFiles/ReportFilter.xml')" />*
    Errors out syaying : Caused by: oracle.xdo.parser.v2.XPathException: Access not allowed : file:/C:/Or
    acleBI/xmlp/XMLP/DemoFiles/ReportFilter.xml
    I have placed the document I need to access in all the 3 locations mentioned above
    ie in my
    *1) C folder*
    *2) C:/OracleBI/oc4j_bi/bin*
    *3) C:/OracleBI/xmlp/XMLP/DemoFiles*
    Is there any special permissions that I need to grant to enable access to these files?
    Please let me know if anyone has successfully made the document function to reference other xml documents in BI Publisher.
    Regards
    Sujith
    Edited by: user10979469 on Dec 8, 2009 11:48 AM

    Tim,
    Thanks a lot for the reply. Set the option to enable external document access and it works perfectly.
    Just for other who are looking at this post.
    Go to the Report in BI Publisher
    Click on Configure link on the top right
    Go to the Section FO Processing
    Disable external references - Server value is "True" . Set it to "False".
    Apply changes.
    Restarted the oc4j, just to be on safer side (not sure if this is required)
    The document function will open documents from any location on your machine.
    Thanks again Tim
    Regards
    Sujith

  • No Battery Charge and Other Problems After OS3 Install - Solution?

    This relates ONLY to iPhone Users using the "PUSH" Function for Email or Other Apps!
    PROBLEM: It seems as though Apple is at least aware of the problem(s), i.e. once Exchange Email or another App using PUSH is configured, there is an OS3 bug that seems to be hardware independent (impacting ALL 1G, 2G and GS iPhones, but not consistently).
    SYMPTOMS: Include some or all of the following . . . rapid discharge (less than two hours from a fully charged phone, failure to charge (by AC adapter or USB to computer), failure to charge completely, perpetual dead battery icon, inability to boot, inability to automatically sleep, quite warm on upper back side, slow email, indication of a full or partially full charge dropping to no charge or dead when removed from charging source.
    CAUSE: OS3 Bug prevents consistent charging, draining the battery even when plugged in to a computer via the USB or into an A/C adapter (although I've been able to intermittently charge on an A/C adapter). In push mode, the Exchange email client on the iPhone continually queries the Exchange Server, cycling the iPhone CPU and continually draining the battery at a high rate (can
    WHAT I'VE BEEN TOLD BY APPLE:
    1) Defective Hardware (though I'm on my third 3G in a week, so I don't think hardware is the problem . . . Apple will consider replacement with a new 3G if my third 3G has the same problem)
    2) Corrupted App in iTunes - so I manually reloaded each app directly over wi-fi, one app at a time, this worked until I configured Exchange Email, at which time symptoms immediately appeared . . . so corrupted app unlikely.
    3) Initial data transfer after email configuration . . . but symptoms continued long after this.
    4) Wi-Fi - but turning wi-fi on or off had little effect, beyond normal.
    5) Restore to New Phone - this works fine UNTIL Exchange Email is configured and activated. Thus, the time consuming practice of reload all apps, photos, music, etc. will be for naught, once exchange email is turned on with "push"
    SOLUTION: Turning off "push" on your exchange email account
    1) Go to Settings - Mail, Contacts, Calendars - Fetch New Data
    2) Set Fetch Setting to 15 minutes to approximate the much more frequent "push" uploads and downloads. NOTE: Turning off \"push\" at this level will NOT turn off push on your exchange email account and the problem will not be resolved
    3) Scroll down and select - Advanced -
    4) Identify and select your Exchange Server account
    5) Select - Fetch -
    6) Leave settings
    Phone should cool down in a few minutes and work normally. The problem can be replicated and resolved repeatedly merely by toggling "push" on and off in your exchange email configuration.
    I was told that this is likely to be the "fix" until a patch is issued. No time frame was given for an actual fix that allows Exchange users to use push technology. Disappointing, since broader use of "push" technology beyond exchange was one of the big benefits of OS 3.0.
    NOTE: THIS PROBLEM DOES NOT OCCUR ON ALL iPHONES WITH OS3 USING THE EXCHANGE CLIENT. I have second 3G phone, identically configured (including push to exchange email) that has no symptoms at all. Go figure.

    Since two days ago, my battery indicator has been indicating 100% until the phone dies, which seems to be one of the symptoms you're describing.
    However, I don't use Push emails; my email client is configured to poll an imap server and has been that way since I got my phone over 6 months ago. To be on the safe side, I turned off Push anyway, but I'm still having the problem. Definitely 3.0 related as I've never had this problem before.
    Perhaps it's linked to an app? Personally I don't have a whole lot of them installed: Aurora Feint, fstream, twitterific, flixster, wikipanion, google earth, urbanspoon, STM Mobile, iDicto, Air Sharing, Facebook and Apple Remote. I've removed a few and will see how it goes.

Maybe you are looking for