Reporting CLOB columns in Analysis
Hi,
I've created a view in the database which has a CLOB column. For this column I've use the DBMS_LOB.SUBSTR(<Clob column>) as detailed in the following forum note
Reporting on CLOB not working in OBIEE
The CLOB column in the RDP Physical and BMM layer is set to LONGCHAR(100011)
This works successfully when the CLOB column value doesn't exceed 4,000 characters, anything greater than 4,000 we get the following error in nqserver.log and the report errors :-
[2012-12-31T13:40:31.000+00:00] [OracleBIServerComponent] [ERROR:1] [] [] [ecid: 477a8593d286d46a:-205e2257:13b6331390c:-8000-000000000003d5eb] [tid: 463f5940] [nQSError: 43119] Query Failed:
[2012-12-31T13:40:31.000+00:00] [OracleBIServerComponent] [ERROR:1] [] [] [ecid: 477a8593d286d46a:-205e2257:13b6331390c:-8000-000000000003d5eb] [tid: 463f5940] [nQSError: 17012] Bulk fetch failed. [[
[nQSError: 17001] Oracle Error code: 12801, message: ORA-12801: error signaled in parallel query server P039
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
ORA-06512: at line 1
at OCI call OCIStmtFetch.
[nQSError: 43119] Query Failed:
[nQSError: 43113] Message returned from OBIS.
Anyone been able to implement this successfully in OBIEE 11g?
Any help on this would be great
Rgds
Hi Robert,
This can be done by generate a report using Catalog Manager->Tools-Create Report and also Repository Document using Admin tool and compare.
You need to save it csv format using catalog manager.
Pls mark if helps.
Similar Messages
-
How do you select a clob column in an SQL query report?
I must be missing something fundamental as there is practically no help on this on the forum.
All I want to do is ...
select numcol,aclob_col from table
in an SQL Query report.
Sounds easy??? I get no data appearing in the clob column. Doesn't work in SQL Workshop either. What's the catch??
regards
Paul PPaul,
It works when I try it. What version of Application Express, what is the table DDL, the exact query, and how much data is in the clob columns?
Scott -
Contains clause in Interactive report search of a clob column
Hi,
I am using APEX Version 4.2.4.00.08
How can an interactive Report use the contains clause when searching a clob column so that it uses the CONTEXT index?
Thanks
Chandra.I wrote it into the SQL used for the IR
I created an APEX application that stores all of our IT's HOWTO documents. (word,excel,pdf)
ctx_doc.snippet creates HTML code.
select D.doc_id
,D.doc_filename
,dbms_lob.getLength( D.doc_blob ) as download
,decode( :P12_SEARCH, null, '-- nothing --',
ctx_doc.snippet( 'IT_DATA.DOC_CTX_IX' -- my Oracle Text index name
, D.doc_id, :P12_SEARCH )
as snippet
from it_data.documents D
where :P12_SEARCH is null
or contains( D.doc_blob, :P12_SEARCH ) > 0
MK -
How to read/write .CSV file into CLOB column in a table of Oracle 10g
I have a requirement which is nothing but a table has two column
create table emp_data (empid number, report clob)
Here REPORT column is CLOB data type which used to load the data from the .csv file.
The requirement here is
1) How to load data from .CSV file into CLOB column along with empid using DBMS_lob utility
2) How to read report columns which should return all the columns present in the .CSV file (dynamically because every csv file may have different number of columns) along with the primariy key empid).
eg: empid report_field1 report_field2
1 x y
Any help would be appreciated.If I understand you right, you want each row in your table to contain an emp_id and the complete text of a multi-record .csv file.
It's not clear how you relate emp_id to the appropriate file to be read. Is the emp_id stored in the csv file?
To read the file, you can use functions from [UTL_FILE|http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14258/u_file.htm#BABGGEDF] (as long as the file is in a directory accessible to the Oracle server):
declare
lt_report_clob CLOB;
l_max_line_length integer := 1024; -- set as high as the longest line in your file
l_infile UTL_FILE.file_type;
l_buffer varchar2(1024);
l_emp_id report_table.emp_id%type := 123; -- not clear where emp_id comes from
l_filename varchar2(200) := 'my_file_name.csv'; -- get this from somewhere
begin
-- open the file; we assume an Oracle directory has already been created
l_infile := utl_file.fopen('CSV_DIRECTORY', l_filename, 'r', l_max_line_length);
-- initialise the empty clob
dbms_lob.createtemporary(lt_report_clob, TRUE, DBMS_LOB.session);
loop
begin
utl_file.get_line(l_infile, l_buffer);
dbms_lob.append(lt_report_clob, l_buffer);
exception
when no_data_found then
exit;
end;
end loop;
insert into report_table (emp_id, report)
values (l_emp_id, lt_report_clob);
-- free the temporary lob
dbms_lob.freetemporary(lt_report_clob);
-- close the file
UTL_FILE.fclose(l_infile);
end;This simple line-by-line approach is easy to understand, and gives you an opportunity (if you want) to take each line in the file and transform it (for example, you could transform it into a nested table, or into XML). However it can be rather slow if there are many records in the csv file - the lob_append operation is not particularly efficient. I was able to improve the efficiency by caching the lines in a VARCHAR2 up to a maximum cache size, and only then appending to the LOB - see [three posts on my blog|http://preferisco.blogspot.com/search/label/lob].
There is at least one other possibility:
- you could use [DBMS_LOB.loadclobfromfile|http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14258/d_lob.htm#i998978]. I've not tried this before myself, but I think the procedure is described [here in the 9i docs|http://download.oracle.com/docs/cd/B10501_01/appdev.920/a96591/adl12bfl.htm#879711]. This is likely to be faster than UTL_FILE (because it is all happening in the underlying DBMS_LOB package, possibly in a native way).
That's all for now. I haven't yet answered your question on how to report data back out of the CLOB. I would like to know how you associate employees with files; what happens if there is > 1 file per employee, etc.
HTH
Regards Nigel
Edited by: nthomas on Mar 2, 2009 11:22 AM - don't forget to fclose the file... -
This is reports 11g
I've got a clob column. Reports seems to recognize its type, but if I try to reference it in a format trigger, I get this error at compile time:
"No pl/sql translation for the blind type given for this bind variable"Actually, Reports is in something better than Forms.
Neither Forms nor Reports do not have "complete" SQL engine (both have only "complete" PL/SQL engine), but have their own SQL parser, which does not understand SQL commands after the database 8.0.
But, in Reports Data Model - SQL Query Statement, we can write "modern" SQL statement (> database 8.0), because Reports sent it directly to the database, without using their own SQL parser.
For example, in Reports Data Model - SQL Query Statement, we can write this (scalar subquery expressions, in bold):
select empno,
ename,
deptno,
(select dname from dept where deptno = emp.deptno) dname
from emp
order by empno;
although scalar subquery expressions was introduced in the database 9.0.1, and in databases 8.0 and 8.1 we should write someting like this:
select emp.empno,
emp.ename,
emp.deptno,
dept.dname
from emp,
dept
where dept.deptno = emp.deptno
order by empno;
Regards,
Zlatko -
Show the rtf formated data from CLOB Column
Hi all,
is it possible to show the rtf formatted text stored in a clob column on the report generated with bi publisher?
A step-by-step guidance wuold be nice.
I have created with bi publisher a report, generated a data source and sql query.
But in ms word it will not be shown as formatted. All rtf tags will be shown too.
Regards,Hi Leonid,
A) =======
I'd be keen if someone like Tim would pick up on this and advise the full list of supported fo:instream-foreign-object content-type's that BI Publisher supports, would be nice if there was application/pdf and as you require application/rtf or similar. That way you'd just base64 encode your file in your XML output as per images like jpg/gif/png and include it in your template.
Desirable syntax would then be like:
<fo:instream-foreign-object content-type="application/rtf" >
<xsl:value-of select="MY_BASE64_RTF_ELEMENT"/>
</fo:instream-foreign-object>However thats wishful thinking as I can only see documented support for images specifically in jpg / gif / png formats.
B) =======
As a workaround if you have the ability to update your RTFs files (clobs) then you can just use the standard subtemplate functionality.
In that case the approach would be:
1. Update the RTFs (stored as clobs) to surround with template syntax:
<?template:DefSubTemp?>
... your RTF doc here ...
<?end template?>2. Take your clob and setup/upload as template (subtemplate=yes) manual or backend automate.
3. Add the subtemplate to your main template (assuming you register under Application Object Library, code XXV8_SUBTEMP, language English and territory United States):
<?import:xdo://FND.XXV8_SUBTEMP.EN.US?>
<?call-template:DefSubTemp?>C) =======
If you don't have the ability to update your RTF CLOBs and neither of the other solutions are suitable, then one of thing I thought of is on the fly conversion of the RTFs to, say, PNG and then use the image functionality to embed the image in the output. But again this may not be suitable as it will be an image not the "textual" output.
D) =======
All else failing you could look into the XML Publisher APIs to see if those could help.
Hopefully something for you to think about here and get more info on.
Regards,
Gareth
Blog: http://garethroberts.blogspot.com/ -
Slow delete on a table with one CLOB column
Hi,
I have a table which has one CLOB column and even if I delete one row from it, it takes approx. 16 seconds. Since UNDO isn't generated for CLOBs (at least not in the UNDO tablespace), I can't figure out why this is so? The CLOB has defined a RETENTION clause, so it depends upon UNDO_RETENTION which is set to 900. There wasn't any lock from another session present on this table.
The table currently contains only 6 rows but it used to be bigger in the past, so I thought that maybe a full table scan is going on when deleting. But even if I limit the DELETE statement with an ROWID (to avoid a FTS), it doesn't help:
SQL> select * from v$version;
BANNER
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
PL/SQL Release 11.1.0.6.0 - Production
CORE 11.1.0.6.0 Production
TNS for 32-bit Windows: Version 11.1.0.6.0 - Production
NLSRTL Version 11.1.0.6.0 - Production
SQL> select count(*) from scott.packet;
COUNT(*)
6
SQL> column segment_name format a30
SQL> select segment_name
2 from dba_lobs
3 where owner = 'SCOTT'
4 and table_name = 'PACKET';
SEGMENT_NAME
SYS_LOB0000081487C00002$$
SQL> select segment_name, bytes/1024/1024 MB
2 from dba_segments
3 where owner = 'SCOTT'
4 and segment_name in ('PACKET', 'SYS_LOB0000081487C00002$$');
SEGMENT_NAME MB
PACKET ,4375
SYS_LOB0000081487C00002$$ 576
SQL> -- packet_xml is the CLOB column
SQL> select sum(dbms_lob.getlength (packet_xml))/1024/1024 MB from scott.packet;
MB
19,8279037
SQL> column rowid new_value rid
SQL> select rowid from scott.packet where rownum=1;
ROWID
AAAT5PAAEAAEEDHAAN
SQL> set timing on
SQL> delete from scott.packet where rowid = '&rid';
old 1: delete from scott.packet where rowid = '&rid'
new 1: delete from scott.packet where rowid = 'AAAT5PAAEAAEEDHAAN'
1 row deleted.
Elapsed: 00:00:15.64From another session I monitored v$session.event for the session performing the DELETE and the reported wait event was 'db file scattered read'.
Someone asked Jonathan Lewis a similar looking question (under comment #5) here: http://jonathanlewis.wordpress.com/2007/05/11/lob-sizing/ but unfortunately I couldn't find if he wrote any answer/note about that.
So if anyone has any suggestion, I'll appreciate it very much.
Regards,
JureAfter reviewing the tkprof as suggested by user503699, I noticed that the DELETE itself is instantaneous. The problem is another statement:
select /*+ all_rows */ count(1)
from
"SCOTT"."MESSAGES" where "PACKET_ID" = :1
call count cpu elapsed disk query current rows
Parse 1 0.00 0.00 0 0 2 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 1 1.40 16.93 125012 125128 0 1
total 3 1.40 16.93 125012 125128 2 1
Misses in library cache during parse: 1
Misses in library cache during execute: 1
Optimizer mode: ALL_ROWS
Parsing user id: SYS (recursive depth: 1)
Rows Row Source Operation
1 SORT AGGREGATE (cr=125128 pr=125012 pw=125012 time=0 us)
0 TABLE ACCESS FULL MESSAGES (cr=125128 pr=125012 pw=125012 time=0 us cost=32900 size=23056 card=5764)I checked if there was any "ON DELETE" trigger and since there wasn't, I suspected this might be a problem of unindexed foreign keys. As soon as I created an index on SCOTT.MESSAGES.PACKET_ID the DELETE executed immediately. The "funny" thing is that, the table SCOTT.MESSAGES is empty, but it has allocated 984MB of extents (since it wasn't truncated), so a time consuming full tablescan was occurring on it.
Thanks for pointing me to the 10046 trace which solved the problem.
Regards,
Jure -
I am not sure if this is the correct forum for this question, so please forgive if this is posted in wrong forum.
I am new to working with CLOBs in Oracle. The procedure updates a CLOB column which stores large XML files. The XML files are first moved to the /u04 directory, then we execute the procedure which looks for the XML in /u04, then uses those XML files to update the CLOB column.
The procure works fine in our development environment, but doesn't work in our System Test box. No exceptions are thrown in Sys Test, but when we check the CLOB column it's NULL/empty.
Both Dev and Sys Test environments are on the same physical server.
Is there something in the database setup I should be looking for which may cause this difference in functionality?
Code is below. I'm sure it could be better but this is my first go-around with CLOBs.
Any help is greatly appreciated!
--open CLOB used to clear out old XML in CLOB column
dbms_lob.open(v_pre_clob, dbms_lob.lob_readwrite);
-- prep XML CLOB column for update
UPDATE REPORT_TBL
SET REPORT_XML = v_pre_clob
WHERE REPORT_ID = p_rep_id;
--Close pre-update CLOB
dbms_lob.close(v_pre_clob);
--get a reference to the XML CLOB that needs to be updated
select report_xml
into v_clob
from report_tbl
where report_id = p_rep_id for update;
--open the target CLOB and source report xml file in /u04
dbms_lob.open(v_clob, dbms_lob.lob_readwrite);
dbms_lob.open(v_report_xml_file);
--Load the contents of the xml file in /u04 into the CLOB column
dbms_lob.loadclobfromfile(v_clob, v_xml_file,
dbms_lob.lobmaxsize,
v_destination_offset, v_source_offset,
nls_charset_id('US7ASCII'),
v_language_context, v_warning_message);
--Check for the only possible warning message.
if v_warning_message = dbms_lob.warn_inconvertible_char then
dbms_output.put_line('Warning! Some characters couldn''t be converted.');
end if;
--Close both LOBs
dbms_lob.close(v_clob);
dbms_lob.close(v_xml_file);
null;
EXCEPTION
WHEN OTHERS THEN
v_return_code := SQLCODE;
v_return_mesg := SQLERRM;
DBMS_OUTPUT.PUT_LINE('PROCEDURE update_xml_from_file');
DBMS_OUTPUT.PUT_LINE('RETURN_CODE = ' || v_return_code);
DBMS_OUTPUT.PUT_LINE('RETURN_MESG = ' || v_return_mesg);Sorry, pulled that code from development where it was working.
The issue was the GRANT on the /u04 directory. -
Forms 6.0 how to query clob column with oracle 9.2 DB
hi every body,
i made install for oracle 9.2 oracle DB every thing goes ok but when i made query in my form version 6.0 which have CLOB column the form closed automatically without any message?
and just for know when i run the same form with oracle 8.1.7 DB the form made query normally without any problem.
i want your help please.
Message was edited by:
mshaqalaihI know there was a problem in 6i where you would get a crash if your query returned more than {Max Length} characters of the field representing the CLOB column.
-
Need help to develop report with column chart
Hi
I am new to SAP BO world.Could anyone please help me to design report with column chart.Please guide me how to develop report for the following requirement.I am not aware of variance columns and variance labels.Please provide some guidance or some tutorials(for column Chart) so that I can complete the task. Please reply me as soon as possible.Waiting for reply.Thanks in advance.
Type: Column Chart
u2022 Rows: Banking Asset Margin (%)
u2022 Start / End Columns: PY YTD Act(Prior year year to date); CY YTD Act(Current year Year to date)
u2022 Variance Columns: # Var (CY-PY Act) for GOLM; Volume; Rate; Non Banking NII; Banking Volatility in NII; Banking Volatility in OOI; Fees/One Offs/Other; Volatile Items; Sophie
u2022 Sub-total columns: PY YTD Underlying; CY YTD Underlying.
u2022 Variance Labels: % Var (CY-PY Act) for Total Income and Underlying Income
u2022 Sub-Total Labels: # Var (CY-PY Act) for Net Insurance Income; Banking Volatility; Other Operating Income
Additional information
u2022 Variance columns (bar) colours: Red = Adverse to Prior Year; Green = Favourable to Prior Year
u2022 Columns to show values. Adverse values to be shown in red text in brackets. Favourable results in black text.
u2022 All values in Black, but adverse to be shown below the bar.Hi,
This type of question is almost impossible to answer over a forum .
You need to work with your business to understand what these requirements mean in terms of data modelling and relationships between object entities.
- Some of these metrics should be delegated to source, and calculated in the update routines to your datatargets (aka Cubes/Tables)
- Others could be resolved in the semantic layer (Universe)
- Other will be calculated in the presentation layer as local formulae or variables.
whilst BusinessObjects is a fairly intuitive tool, it may be unreasonble to expect a new learner to deliver an advanced report with conditional formatting.
Regards,
H -
Error reading data from CLOB column into VARCHAR2 variable
Hi all,
Am hitting an issue retrieving data > 8K (minus 1) stored in a CLOB column into a VARCHAR2 variable in PL/SQL...
The "problem to be solved" here is storing DDL, in this case a "CREATE VIEW" statement, that is longer than 8K for later retrieval (and execution) using dynamic SQL. Given that the EXECUTE IMMEDIATE statement can take a VARCHAR2 variable (up to 32K(-1)), this should suffice for our needs, however, it seems that somewhere in the process of converting this VARCHAR2 text to a CLOB for storage, and then retrieving the CLOB and attempting to put it back into a VARCHAR2 variable, it is throwing a standard ORA-06502 exception ("PL/SQL: numeric or value error"). Consider the following code:
set serveroutput on
drop table test1;
create table test1(col1 CLOB);
declare
cursor c1 is select col1 from test1;
myvar VARCHAR2(32000);
begin
myvar := '';
for i in 1..8192 loop
myvar := myvar || 'a';
end loop;
INSERT INTO test1 (col1) VALUES (myvar);
for arec in c1 loop
begin
myvar := arec.col1;
dbms_output.put_line('Read data of length ' || length(myvar));
exception when others then
dbms_output.put_line('Error reading data: ' || sqlerrm);
end;
end loop;
end;
If you change the loop upper bound to 8191, all works fine. I'm guessing this might have something to do with the database character set -- we've recently converted our databases over to UTF-8, for Internationalizion support, and that seems to have changed underlying assumptions regarding character processing...?
As far as the dynamic SQL issue goes, we can probably use the DBMS_SQL interface instead, with it's EXECUTE procedure that takes a PL/SQL array of varchar2(32K) - the only issue there is reading the data from the CLOB column, and then breaking that data into an array but that doesn't seem insurmountable. But this same basic issue (when a 9K text block, let's say, turns into a >32K block after being CLOBberred) seems to comes up in other text-processing situations also, so any ideas for how to resolve would be much appreciated.
Thanks for any tips/hints/ideas...
JimFor those curious about this, here's the word from Oracle support (courtesy of Metalinks):
RESEARCH
========
Test the issue for different DB version and different characterset.
--Testing the following PL/SQL blocks by using direct assignment method(myvar := arec.col1;) on
different database version and different characterset.
SQL>create table test1(col1 CLOB);
--Inserting four CLOB data into test1.
declare
myvar VARCHAR2(32767);
begin
myvar := RPAD('a',4000);
INSERT INTO test1 (col1) VALUES (myvar);
myvar := RPAD('a',8191);
INSERT INTO test1 (col1) VALUES (myvar);
myvar := RPAD('b',8192);
INSERT INTO test1 (col1) VALUES (myvar);
myvar := RPAD('c',32767);
INSERT INTO test1 (col1) VALUES (myvar);
commit;
end;
--Testing the direct assignment method.
declare
cursor c1 is select col1, length(col1) len1 from test1;
myvar VARCHAR2(32767);
begin
for arec in c1 loop
myvar := arec.col1;
--DBMS_LOB.READ(arec.col1, arec.len1, 1, myvar);
dbms_output.put_line('Read data of length: ' || length(myvar));
end loop;
end;
The following are the summary of the test results:
===================================
1. If the database characterset is WE8ISO8859P1, then the above direct assignment
method(myvar := arec.col1;) works for database version 9i/10g/11g without any
errors.
2. If the database characterset is UTF8 or AL32UTF8, then the above direct assignment method(myvar := arec.col1;) will generate the "ORA-06502:
PL/SQL: numeric or value error" when the length of the CLOB data is greater
than 8191(=8K-1). The same error can be reproduced across all database versions
9i/10g/11g.
3. Using DBMS_LOB.READ(arec.col1, arec.len1, 1, myvar) method to read CLOB data into a VARCHAR2 variable works for both WE8ISO8859P1 and UTF8
characterset and for all database versions.
So - it seems as I'd surmised, UTF8 changes the way VARCHAR2 and CLOB data is handled. Not too surprising, I suppose - may you all be lucky enough to be able to stay away from this sort of issue. But - the DBMS_LOB.READ workaround is certainly sufficient for the text processing situations we find ourselves in currently.
Cheers,
Jim C. -
Split CLOB column to improve performance
Hi All,
We have a transactional table which has 3 columns and one among those is CLOB which holds XML data.Inserts are coming at 35K/hr to this table and data will be deleted as soon as job is completed. So anytime the total records in this table will be less than 1000.
The XML data contains binary info of images and the size of each XML file ranges any where between 200KB to 600KB and the elapsed time for each insert varies from 1 to 2 secs depending upon the concurrency. As we need to achieve 125K/hour soon we were planning to do few modifications on table level.
1. Increase the CHUNK size from 8KB to 32KB.
2. Disabling logging for table,clob and index.
3. Disable flashback for database.
4. Move the table to a non default blocksize of 32KB. Default is 8KB
5. Increase the SDU value.
6. Split the XML data and store it on multiple CLOB columns.
We don't do any update to this table. Its only INSERT,SELECT and DELETE operations.
The major wait events I'm seeing during the insert is
1. direct path read
2. direct path write
3. flashback logfile sync
4. SQL*Net more data from client
5. Buffer busy wait
My doubt over here is ,
1. If I allocate a 2G memory for the non default block size and change the clob to CACHE, will my other objects in buffer_cache gets affected or gets aged out fast?
2. And moving this table to a SECUREFILE from BASICFILE will help?
3. Splitting the XML data to insert into different columns in the same table will give a performance boost?
Oracle EE 11.2.0.1,ASM
Thanks,
ArunThanks to all for the replies
@Sybrand
Please answer first whether the column is stored in a separate lobsegment.
No. Table,Index,LOB,LOB index uses the same TS. I missed adding this point( moving to separate TS) as part of table modifications.
@Hemant
There's a famous paper / blog post about CLOBs and Database Flashback. If I find it, I'll post the URL.
Is this the one you are referring to
http://laimisnd.wordpress.com/2011/03/25/lobs-and-flashback-database-performance/
By moving the CLOB column to different block size , I will test the performance improvement it gives and will share the results.
We dont need any data from this table. XML file contains details about finger prints and once the application server completes the job , XML data is deleted from this table.
So no need of backup/recovery operations for this table. Client will be able to replay the transactions if any problem occurs.
@Billy
We are not performing XML parsing on DB side. Gets the XML data from client -> insert into table -> client selects from table -> Upon successful completion of the Job from client ,XML data gets deleted.
Regarding binding of LOB from client side, will check on that side also to reduce round trips.
By changing the blocksize, I can keep db_32K_cache_size=2G and keep this table in CACHE. If I directly put my table to CACHE, it will age out all other operation from buffer which makes things worse for us.
This insert is part of transaction( Registration of a finger print) and this is the only statement taking time as of now compared to other statements in the transaction.
Thanks,
Arun -
Hints on Interactive Report's column headers
Hi,
I've used +"< spa.n title = "Hint" > Header < / span>"+ (the first 'spa.n' is so it doesn't interpret as code) to put hints on my report columns headers but found that, when using interactive report's tools, the column names that appear obviously include the "code".
Is there any way to put hints on interactive report columns and still maintain the proper title(in this case Header) when using the tools?
Thank you,
MarcHi,
Thank you for the tip Ghoulies. The spaces I put trying to make it read as text. The code works fine, it actually shows the Header in the report's column and the hint appears on mouse-over.
What I mean is, when using interactive report's tools, such as "Select Columns", The <span title="hint">header</span> {code} appears as the column name in the +display / not display+ boxes.
Is there any other way to put hints on Interactive reports so that this doesn't happen?
Marc -
Report Template, Column Template, Column Template Condition
I have a template, Standard Revenue from Standard, I have cloned for a Classic report.
Application ###>Shared Componets>Templates>Edit Report Template
Column Template 1 looks like:
<td#ALIGNMENT# headers="#COLUMN_HEADER_NAME#" class="t1data_revenue">#COLUMN_VALUE#</td>
I have set Column Template 1 Condition to:
"Use based on PL/SQL expresiion"
I have tried several expression in "Column Template 1 Expression" - last one is:
case
when #COLNUM# <= 2 then false
when #COLUMN_VALUE# < 0 then true
else false
end case;
I am trying to use the value in "Column Template 2" when to value of the #COLUMN_VALUE# < 0
where "Column Template 2" is :
<td#ALIGNMENT# headers="#COLUMN_HEADER_NAME#" class="t1data_revenue_negative">#COLUMN_VALUE#</td>
I get the following error when I run the page:
ORA-01403: no data found
and
ERR-1025 Error processing PLSQL expression. case when #COLNUM# <= 2 then false when #COLUMN_VALUE# < 0 then true else false end case;
Any help will be appreciated.
thank you,
jwmHi,
That's actually easier. See: [http://apex.oracle.com/pls/otn/f?p=267:60]
The SQL for both reports is:
SELECT EMPNO, ENAME, NVL(SAL,0) SAL, NVL(COMM,0) COMM
FROM EMP
ORDER BY EMPNOThe SAL and COMM columns have been formatted using:
999G999G999G999G990D00For the Row Template, the Row Template 1 setting contains an empty space (you have to have something in there otherwise Apex adds back in a default row containing five cells!). The condition for this is:
TO_NUMBER('#COMM#','999G999G999G999G990D00') < 100The template will see the data as a string, so we use the same number format to convert that string back into a number and compare this to 100. If we didn't use formatting on the numbers and we are sure that every row contained a number (hence the use of NVL()), then you could use:
#COMM# < 100Row Template 2 contains the format for the rows that need displaying:
<tr>
<td class="t18Data">#1#</td>
<td class="t18Data">#2#</td>
<td class="t18Data" style="text-align:right">#3#</td>
<td class="t18Data" style="text-align:right">#4#</td>
</tr>and is unconditional.
The only other settings on the Row Template are the Before Rows:
<table class="t18Standard" style="border-collapse:collapse; border:1px solid black;">
<tr>
<th class="t18ReportHeader">Empno</th>
<th class="t18ReportHeader">Ename</th>
<th class="t18ReportHeader" style="text-align:right">Sal</th>
<th class="t18ReportHeader" style="text-align:right">Comm</th>
</tr>and After Rows:
</table>Of course, you will note that the record counters at the bottom still show the number of records in both reports - as the SQL still outputs the same data, this doesn't change.
Andy -
How to retreive soap xml data from clob column in a table
Hi,
I am trying to retrieve the XML tag value from clob column.
Table name = xyz and column= abc (clob datatype)
data stored in abc column is as below
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:head="http://www.abc.com/gcgi/shared/system/header" xmlns:v6="http://www.abc.com/gcgi/services/v6_0_0_0" xmlns:sys="http://www.abc.com/gcgi/shared/system/systemtypes">
<soapenv:Header xmlns:wsa="http://www.w3.org/2005/08/addressing">
<RqHeader soapenv:mustUnderstand="0" xmlns="http://www.abc.com/gcgi/shared/system/header">
<DateAndTimeStamp>2011-12-20T16:02:36.677+08:00</DateAndTimeStamp>
<UUID>1000002932</UUID>
<Version>6_0_0_0</Version>
<ClientDetails>
<Org>ABC</Org>
<OrgUnit>ABC</OrgUnit>
<ChannelID>HBK</ChannelID>
<TerminalID>0000</TerminalID>
<SrcCountryCode>SG</SrcCountryCode>
<DestCountryCode>SG</DestCountryCode>
<UserGroup>HBK</UserGroup>
</ClientDetails>
</RqHeader>
<wsa:Action>/SvcImpl/bank/
SOAPEndpoint/AlertsService.serviceagent/OpEndpointHTTP/AlertDeleteInq</wsa:Action></soapenv:Header>
<soapenv:Body>
<v6:AlertDeleteInqRq>
<v6:Base>
<v6:VID>20071209013112</v6:VID>
<!--Optional:-->
<v6:Ref>CTAA00000002644</v6:Ref>
</v6:Base>
</v6:AlertDeleteInqRq>
</soapenv:Body>
</soapenv:Envelope>
And i want to retrieve the values of tag
<ChannelID> and <v6:VID>
can somebody help, i have tried with extractvalue but not able to get the valuesI have used the below two queries but not able to get the expected results. Both queries result into no values.
select xmltype(MED_REQ_PAYLOAD).extract('//ClientDetails/Org','xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" || xmlns="http://www.abc.com/gcgi/shared/system/header"').getStringValue() from ESB_OUTPUT_TEMP where SOAPACTION = '/SvcImpl/bank/alerts/v6_0_0_0/SOAPEndpoint/AlertsService.serviceagent/OpEndpointHTTP/AlertDeleteInq'
select EXTRACTVALUE(xmltype(MED_REQ_PAYLOAD),'/RqHeader/) from ESB_OUTPUT_TEMP where SOAPACTION = '/SvcImpl/bank/SOAPEndpoint/AlertsService.serviceagent/OpEndpointHTTP/AlertDeleteInq'
Well, for starters, both queries are syntactically wrong :
- non terminated string
- incorrect namespace mapping declaration
- unknown XMLType method "getStringValue()"
Secondly, all those functions are deprecated now.
Here's an up-to-date example using XMLTable. It will retrieve the two tag values you mentioned :
SQL> select x.*
2 from esb_output_temp t
3 , xmltable(
4 xmlnamespaces(
5 'http://schemas.xmlsoap.org/soap/envelope/' as "soap"
6 , 'http://www.abc.com/gcgi/shared/system/header' as "head"
7 , 'http://www.abc.com/gcgi/services/v6_0_0_0' as "v6"
8 )
9 , '/soap:Envelope'
10 passing xmlparse(document t.med_req_payload)
11 columns ChannelID varchar2(10) path 'soap:Header/head:RqHeader/head:ClientDetails/head:ChannelID'
12 , VID varchar2(30) path 'soap:Body/v6:AlertDeleteInqRq/v6:Base/v6:VID'
13 ) x
14 ;
CHANNELID VID
HBK 20071209013112
You may also want to store XML in XMLType columns for both performance and storage optimizations.
Maybe you are looking for
-
Is there any standard report which give all info about purchase order.
hi is there any standard report which give all information about purchase order. i need following information from Purchase Order. Vendor No, vendorname, PO No, basic Excise insurance Frieght. Thanks.
-
IPhone LCD hairline mark please help!!!
Alright, Right now I am sick to my stomach. I turn on my iphone to check a phone number and there is a hairline crack across the LCD of the phone. Its not the glass the glass is perfect and I searched online and only found things about the glass bein
-
Which xcode version works for OS X 10.7.5?
I'm a web designer and I'd like to learn how to create simple apps for iPad and iPhone so I decided to install xcode but the current version is only supporting OS 10.8.4 or later. I'm working on Mac OS X 10.7.5. Which version of xcode works best for
-
Hi, If I have a Subclass that overrides a method in a superclass, is it possible to call that method from the superclass? Thanks
-
Can I install jdeveloper 10g on aix5.2?
Hi, I want to use oracle application framework while i develop my applicaiton with jdeveloper10g,but I don't know if I can install adf run-time on weblogic 8.1 which installed on IBM AIX5.2£¬who can give me some idea? thank you very much li xinzhu