Displaying Blob Objects In A Report
Does anyone know how to generate a report in Portal that displays gif images which are saved in my database as a BLOB type in a simple report? I would like the report to display the images from this table at least 20 images per page and then allow the user to click next for the next 20. I was able to do this using a dynamic html portlet. But this required too much coding. Just curious if there was an easier way. Any help on this would be appreciated.
http://oracle.com/forums/thread.jsp?forum=7&thread=184943&message=486380
Similar Messages
-
Display BLOB objects (doc, pdf, jpg, etc) in Browser
Hello.
I need help retrieving BLOBs from my DB and displaying them on a browser using Java (or JSP). The BLOB can contain any types of file form (such as pdf, doc, xls, jpeg,etc).
null<BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by LP:
Hello.
I need help retrieving BLOBs from my DB and displaying them on a browser using Java (or JSP). The BLOB can contain any types of file form (such as pdf, doc, xls, jpeg,etc).
<HR></BLOCKQUOTE>
null -
I am trying to display BLOBS in HTMLDB using Report. I am not able to display images, PDF or Docs.
I am using the following procedure DISPLAY_IMAGE
create or replace procedure "DISPLAY_IMAGE"
(p_image_id IN NUMBER)
is
l_mime varchar2(255);
l_length number;
l_file_name varchar2(2000);
lob_loc BLOB;
begin
select mime_type,image_data, file_name, dbms_lob.getlength(image_data)
into l_mime, lob_loc, l_file_name, l_length
from image_table where image_id = p_image_id;
owa_util.mime_header(nvl(l_mime,'application/octet'), FALSE );
htp.p('Content-length: ' || l_length);
htp.p('Content-Disposition: filename="' || l_file_name || '"');
owa_util.http_header_close;
wpg_docload.download_file( Lob_loc );
end;
I tried building with the following region source in the Report
select
'<iframe src="#OWNER#.display_image?p_image_id=&i.image_id." width=300> </iframe>' img, image_id, file_name, mime_type from image_table i
Any ideas???Does accessing #OWNER#.display_image?p_image_id=&i.image_id. directly via your browser work if you replace &image_id. and #OWNER# with valid values (i.e. is a popup window displayed asking you to save or open the file)? If this works then...
The HTTP header output by the following line tells a browser to popup the "Save to disk" dialog.
htp.p('Content-Disposition: filename="' || l_file_name || '"');
If you are wanting to just display the content of the file (e.g. image, pdf etc.) in the browser you will want to remove that line.
[ BTW, I am not sure if you can set the src attribute of the IFRAME tag to be an image. PDFs should work though I think ] -
Display BLOB (image) column in (interactive) report
Hi,
I have a field called "picture" in my table "details" which is of type BLOB. i also have a field for "MIMETYPE" and "filename"
i additionally have a "name" and "description" columns which i need to display along with the picture as columns in a report (preferably interactive).
i have also modified the BLOB display format as per
http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/apex/r31/apex31nf/apex31blob.htm
what i am missing is the correct query. if possible, i would like to control the size of the picture rendered within the report like say 40*50.
I have also referred to the thread
APEX 3.1 Display BLOB Image
But i don't know how to place the
dbms_lob.getlength("BLOB_CONTENT") as "BLOB_CONTENT"
in my query.
The above also makes the report column as of type "number". is this expected?
Any help would be much appreciated.
Regards,
RamakrishnanYou haven't actually said what the problem is?
>
I have a field called "picture" in my table "details" which is of type BLOB. i also have a field for "MIMETYPE" and "filename"
i additionally have a "name" and "description" columns which i need to display along with the picture as columns in a report (preferably interactive).
i have also modified the BLOB display format as per
http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/apex/r31/apex31nf/apex31blob.htm
what i am missing is the correct query.
I have also referred to the thread
APEX 3.1 Display BLOB Image
But i don't know how to place the
dbms_lob.getlength("BLOB_CONTENT") as "BLOB_CONTENT"
>
Something like:
select
name
, description
, dbms_lob.getlength(picture) picture
from
details
if possible, i would like to control the size of the picture rendered within the report like say 40*50.For images close to this size it's easy to do this for declarative BLOB images in interactive reports using CSS. Add a style sheet with:
.apexir_WORKSHEET_DATA td[headers="PICTURE"] img {
display: block;
width: 40px;
border: 1px solid #999;
padding: 4px;
background: #f6f6f6;
}where the <tt>PICTURE</tt> value in the attribute selector is the table header ID of the image column. Setting only one dimension (in this case the width) scales the image with the correct aspect ratio. (The border, padding and background properties are just eye candy...)
However, scaling large images in the browser this way is a huge waste of bandwidth and produces poorer quality images than creating proper scaled down versions using image tools. For improved performance and image quality, and where you require image-specific scaling you can use the database ORDImage object to produce thumbnail and preview versions automatically, as described in this blog post. -
Can not display BLOB in a REPORT Portal 3.0.9
I had created a table witha blob field.
I want to display this field in a report to display the documento from the aplicaction.
What can i do ?Hi,
BLOBs are not supported in reports as of now.
Thanks,
Sharmila -
SOLUTION - How to display a BLOB content in Portal Report
Courtesy of Kelly Wong:
1. Every time a record of the file information is inserted into the
PORTAL30.WWDOC_DOCUMENT table while you inserted a record to the blob
field in a portal form that you created.
[The fact that a file uploaded appears in the WWDOC_DOCUMENT table is actually a side-effect of Forms file upload, this may change in a future version. However this example gives a pretty good solution to the problem - Dmitry]
2. If you describe the PORTAL30.WWDOC_DOCUMENT table, you will find
that a few of the columns are: NAME, FILENAME, MIME_TYPE, BLOB_CONTENT,
CREATOR, etc.
3. I created a pl/sql procedure that takes a NAME parameter.
The code of the procedure is as follows:
CREATE OR REPLACE Procedure get_url
(V_FILENAME IN VARCHAR2)
IS
url varchar2(100);
BEGIN
url := '/pls/portal30/docs/'| |v_filename;
portal30.wwv_redirect.url(p_url =>url);
END;
4. I then created a portal report, select NAME, FILENAME, MIMETYPE,
CREATOR fields from PORTAL30.WWDOC_DOCUMENT. (remember, no BLOB_CONTENT
field is selected!) My select statement is:
SELECT '<A
HREF="scott.get_url?v_filename='| |name| |'">'| |filename| |'</A>' filename,
name,mime_type,creator
from portal30.wwdoc_document
where creator = 'KELLY'
You can see that I am passing in "NAME" instead of "FILENAME" into the
get_url procedure because the it needs the "NAME" info to display the
file.
Actually, the content in the NAME column is something like:"563.TXT",
and the content in the FILENAME column is "F15675/IPORTAL_LOCAL.TXT".
The hyperlink can be either on the NAME or FILENAME field, as long as
you pass in the content of "NAME" into the procedure.
And it should be fairly easily to substring the FILENAME to show only
"IPORTAL_LOCAL.TXT" if the client doesn't like to see the number
portion.
That is, when I click on the link, I am able to see my file in a new
browser window.The only drawback in this scenario is if there is a link
from your document to a portal component (form/report), it may not link
to the form/report. If there are links in the document link to other
document (html, txt, etc.), it will be no problem. It just open the
document in another browser window.
Please feel free to give me any comment on this and post it to the forum
if needed. I just don't want to search for the original questions in
the forum and attach the reply to it.
Regards;
Kelly.Is this method working also for portal 3.0.9?
I can't get it to work.
Is there a way do put a link to download the content of a blob field inside a report in version 3.0.9 that comes with iAS 1.0.2.2?
Thank's in advance
Mauro -
Doubt , how to display ole objects in report builder
Please tell me, how to display ole objects in report builder.
I mean i wanted to print ole object in report, so how to do that.Just to clarify Lixia's response.
In Reports 9i we have deprecated our OLE functionality. Reports created in prior versions that contain OLE objects should still run, but you will not be able to create new reports containing OLE objects. -
How to display BLOB images from the Oracle database within Crystal
Let's say a have the following table
IMAGES
========
DOC_ID NUMBER
DOC_NAME STRING
DOC_IMAGE BLOB
The BLOB field can have any type of document: PDF, email, WORD, EXcel, etc. I would like to present the DOC_ID and DOC_NAME and let the user click any of them. Once the user clicks the document stored in the database as BLOB, it is rendered using the default application associated to the extension. For example if the file name is ABC.XLS open MSExcel if the file is abc.pdf open Acrobat.
I am using Crystal2008 and evaluating Crystal 4.0
Does this requires programming?
Thanks!!!Hi
Crystal is a reporting tool and you canu2019t execute any code except free hand SQL. When you pull any BLOB fields in crystal, it takes as a picture field and if that field contains image only it will display in your report.
If you have any information other than image, it will not display any info in the report.
If you want to insert Word , PDF and Excel then you will have to insert as ole object and can manage with location of the files.
Thanks,
Sastry -
Problem with displaying BLOB images on JSP page using a servlet
hi. I have a big problem with displaying BLOB images using JSP. I have a servlet that connects to the oracle database, gets a BLOB image , reads it, and then displays it using a BinaryStream. The problem is , this works only when i directly call that servlet, that is http://localhost:8080/ImageServlet. It doesn't work when i try to use that servlet to display my image on my JSP page (my JSP page displays only a broken-image icon ) I tried several coding approaches with my servlet (used both Blob and BLOB objects), and they work just fine as long as i display images explicitly using only the servlet.
Here's what i use : ORACLE 10g XE , Eclipse 3.1.2, Tomcat 5.5.16 , JDK 1.5
here is one of my image servlet's working versions (the essential part of it) :
BLOB blob=null;
rset=st.executeQuery("SELECT * FROM IMAGES WHERE ID=1");
while (rset.next())
blob=((OracleResultSet)rset).getBLOB(2);
response.reset();
response.setContentType("image/jpeg");
response.addHeader("Content-Disposition","filename=42.jpeg");
ServletOutputStream ostr=response.getOutputStream();
InputStream istr=blob.getBinaryStream(1L);
int size=blob.getBufferSize();
int len=-1;
byte[] buff = new byte[size];
while ((len=istr.read( buff ))!=-1 ) {
ostr.write(buff,0,len);
response.flushBuffer();
ostr.close(); and my JSP page code :
<img src="/ImageServlet" border="0" > If you could just tell me what i'm doing wrong here , or if you could show me your own solutions to that problem , i would be very greatful ,cos i'm realy stuck here , and i'm rather pressed for time too. Hope someone can help.I turns out that it wasn't that big of a problem after all. All i had to do was to take the above code and place it into another JSP page instead of into a servlet like i did before. Then i just used that page as a source for my IMG tag in my first JSP. It works perfectly well. Why this doesn't work for servlets i still don't know, but it's not a problem form me anymore . Ofcourse if someone knows the answer , go ahead and write. I would still appriceatte it.
here's the magic tag : <img src="ImageJSP.jsp" border="0" > enjoy : ) -
<p>Hi, everybody,</p><p> I have a problem which the picture in the report can't be printed.</p><p>I want to display some pictures in the reports and print them.So I insert the picture as OLE object, select the graph format and set graph location fomular with the path of the picture which is stored in the local machine. I run the system and generate the report, the picture is displayed correctly in the report, but when i print the report using ie's tool, the picture is gone and replaced with a little red mark. </p><p>I want to use the new feature of dynamic graph location about the crystal report xi version, but I don't know where I should put the picture into on the web server and what the path is . Because my web server is installed in the another machine.</p><p>I check the view source of html report and find that the system searches the picture under the crystalreportviewer11 folder on the web server.</p>
Need to give the web server access to the folder
-
Object Reference not set to instance of Object when sub-report on new page
I have a problem when my sub-report goes onto the second page of the report, with an error message.
My VB.NET displays a report and sub-report (in the footer) in a CrystalReportViewer:
- When both are on the first page, both display fine
- When the sub-report (or at least part) goes to the second page, the report displays OK, but without the subreport. When I go to page 2 of the report - hoping to see the sub-report - an error message is displayed, with title "Crystal Report Windows Forms Viewer" and text "Object Reference not set to an instance of an object".
This problem occurs both on my development machine in VS and at a user site.
Am desperate for some ideas please! I have VB.NET in Visual Studio 2010, and SAP Crystal Reports, version for Visual Studio 2010. The program is targeted for .NET Framework 3.5.
I looked for the HandleException event on my Windows Forms Viewer, as suggested by SAP and Microsoft, but cannot find this. See for [example|http://devlibrary.businessobjects.com/businessobjectsxi/en/en/crystalreports_dotnet_sdk/crystalreports_net_doc/doc/crsdk_net_doc/html/crlrfwindowsformscrystalreportviewerclasshandleexceptioneventtopic.htm]Usually, the error is due to the object going out of scope. Placing the object in a session may help. Moving the CR code to page init or page load may help. Looking at samples may help:
http://wiki.sdn.sap.com/wiki/x/JQBmBQ
CR Dev help files are here:
SAP Crystal Reports .NET API Guide http://help.sap.com/businessobject/product_guides/sapCRVS2010/en/crnet_api_2010_en.zip
SAP Crystal Reports .NET SDK Developer Guide http://help.sap.com/businessobject/product_guides/sapCRVS2010/en/crnet_dg_2010_en.zip
Finally, ensure you are using Service Pack 2 (see the sticky thread at the top of this forum).
Ludek
Follow us on Twitter http://twitter.com/SAPCRNetSup
Got Enhancement ideas? Try the [SAP Idea Place|https://ideas.sap.com/community/products_and_solutions/crystalreports] -
Help with displaying BLOBs in OBIEE 11g
I am trying to get OBIEE 11g to display photographs in an Analysis report. I know BLOB fields are not supported, and I have been reading posts on this board and following examples on internet sites that try to get round this problem. But, try as I might, I cannot get those pesky photos to display.
Below are all the steps I have followed. Sorry that there is a lot to read, but I was hoping that somebody has been successful in doing this, and may spot something in one of my steps that I am doing wrong.
ORACLE TRANSACTIONAL SOURCE_
Table : EMPL_PHOTO
Fields:
USN VARCHAR2(11) ( Unique Key )
EMPLOYEE_PHOTO BLOB ( I think the photos are stored as 'png' )
ORACLE WAREHOUSE SOURCE_
Table : D_PERSON_PHOTO_LKUP
Fields :
PERSON_KEY NUMBER(38,0) ( Primary Key - Surrogate )
USN VARCHAR2(11)
PHOTO CLOB
BLOB to CLOB conversion.
I used this function :
create or replace function blob_to_clob_base64(p_data in blob)
return clob
is
l_bufsize integer := 16386;
l_buffer raw(16386);
l_offset integer default 1;
l_result clob;
begin
dbms_lob.createtemporary(l_result, false, dbms_lob.call);
loop
begin
dbms_lob.read(p_data, l_bufsize, l_offset, l_buffer);
exception
when no_data_found then
exit;
end;
l_offset := l_offset + l_bufsize;
dbms_lob.append(l_result, to_clob(utl_raw.cast_to_varchar2(utl_encode.base64_encode(l_buffer))));
end loop;
return l_result;
end;
select usn, employee_photo ,
BLOB_TO_CLOB_BASE64(employee_photo)
from empl_photo
IN OBIEE ADMINISTRATION TOOL_
*1) Physical Layer*
Added D_PERSON_PHOTO_LKUP from Connection Pool
Left it as 'Cachable'
Didn't join it to any tables
Changed field PHOTO to a 'LONGVARCHAR' length 100000
Set USN as the Key ( not the surrogate key )
*2) BMM Layer*
Dragged D_PERSON_PHOTO_LKUP across.
Renamed it to 'LkUp - Photo'
Ticked the 'lookup table' box
Removed the surrogate key
Kept USN as the Primary key
The icon shows it similar to a Fact table, with a yellow key and green arrow.
On Dimension table D_PERSON_DETAILS (Dim - P01 - Person Details) added a new logical column
Called it 'Photo'
Changed the column source to be derived from an expression.
Set the expression to be :
Lookup(DENSE
"People"."LkUp - Photo"."PHOTO",
"People"."Dim - P01 - Person Details"."USN" )
Icon now shows an 'fx' against it.
Note: This table also had it Surrogate key removed, and USN setting as primary key.
*3) Presentation Layer*
Dragged the new Photo field across.
Saved Repository file, uploaded, and restarted server.
ONLINE OBIEE_
Created a new Analysis.
Selected USN from 'Person Details'
Selected Photo from 'Person Details'
Selected a measure from the Fact table
Under column properties of Photo ( data format ) :
- Ticked 'Override Default Data Format' box
- Set to Image URL
- Custom text format changed to : @[html]"<img alt="" src=""@H"">"
Under column properties of Photo ( edit formula ) :
- Changed to : 'data:image/png;base64,'||"Person Details"."Photo"
The Advanced tab shows the sql as :
SELECT
0 s_0,
"People"."Person Details"."USN" s_1,
'data:image/png;base64,'||"People"."Person Details"."Photo" s_2,
"People"."MEASURE"."Count" s_3
FROM "People"
ORDER BY 1, 2 ASC NULLS LAST, 3 ASC NULLS LAST
FETCH FIRST 65001 ROWS ONLY
Going into the 'results' tab, get error message:
+State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. [nQSError: 43113] Message returned from OBIS. [nQSError: 17001] Oracle Error code: 932, message: ORA-00932: inconsistent datatypes: expected - got CLOB at OCI call OCIStmtExecute. [nQSError: 17010] SQL statement preparation failed. (HY000)+
It doesn't seem to be using the Lookup table, but can't work out at which step I have gone wrong.
Any help would be appreciated.
ThanksThanks, yes I followed http://docs.oracle.com/cd/E28280_01/bi.1111/e10540/busmodlayer.htm#BGBDBDHI, but when I get to the part of setting the LOOKUP function on th Physical source, only ONE physical source is displayed. I need TWO sources ( The Employee Table, and the Photo LookUp.
I have raised this as an error with Oracle. We are now on OBIEE 11.1.1.7, but Oracle say BLOBS are still not supported in that release. It will be fixed in 11.1.1.8 and it will be backported into 11.1.1.6.11
In the meantime we have abandoned showing Photo's in any of our reports. -
Problem in display of text in ALV report
Dear experts,
I am working on a MM Report in which I need to display Material Basic data text maintained in MM01,02 Tcodes through ALV report.
I have declared a string type variable for the Basic data text in the Final Internal Table.
For reading the Standard text I am using Read_Text FM, from which I am looping the Text internal table and concatenating it into
String variable.
What I notice is all the content beyond 255 chars is not getting displayed, Even when the ALV report is downloaded to Excel file.
Can you suggest some approach to over come this issue.
Regards,
MurthyHi,
Use the below code
Data : lt_content TYPE TABLE OF tline,
lw_content TYPE tline.
Data : lt_text Type Table of solisti1,
lw_text TYPE solisti1.
CALL FUNCTION 'READ_TEXT'
EXPORTING
client = sy-mandt
id = lv_id
language = tdspras
name = lv_name
object = lv_object
archive_handle = 0
local_cat = ' '
TABLES
lines = lt_content
EXCEPTIONS
id = 1
language = 2
name = 3
not_found = 4
object = 5
reference_check = 6
wrong_access_to_archive = 7
OTHERS = 8.
loop at lt_content into lw_content.
lw_text-line = lw_content-tdline.
APPEND lw_text TO lt_text.
CLEAR: lw_content, lw_text.
endloop.
Now your whole text is in "lt_text".
Regards,
Avish Mittal -
I want to display BLOB image in JSP Using html tags IMG src=
GoodAfternoon Sir/Madom
I Have got the image from oracle database but want to display BLOB image using <IMG src="" > Html tags in JSP page . If it is possible than please give some ideas or
Send me sample codes for display image.
This code is ok and working no problem here Please send me code How to display using html tag from oracle in JSP page.
<%@ page import="java.sql.*" %>
<%@ page import="java.io.*" %>
<%@ page import="javax.swing.ImageIcon;" %>
<%
out.print("hiiiiiii") ;
// declare a connection by using Connection interface
Connection connection = null;
/* Create string of connection url within specified format with machine
name, port number and database name. Here machine name id localhost
and database name is student. */
String connectionURL = "jdbc:oracle:thin:@localhost:1521:orcl";
/*declare a resultSet that works as a table resulted by execute a specified
sql query. */
ResultSet rs = null;
// Declare statement.
PreparedStatement psmnt = null;
// declare InputStream object to store binary stream of given image.
InputStream sImage;
try {
// Load JDBC driver "com.mysql.jdbc.Driver"
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
/* Create a connection by using getConnection() method that takes
parameters of string type connection url, user name and password to
connect to database. */
connection = DriverManager.getConnection(connectionURL, "scott", "root");
/* prepareStatement() is used for create statement object that is
used for sending sql statements to the specified database. */
psmnt = connection.prepareStatement("SELECT image FROM img WHERE id = ?");
psmnt.setString(1, "10");
rs = psmnt.executeQuery();
if(rs.next()) {
byte[] bytearray = new byte[1048576];
int size=0;
sImage = rs.getBinaryStream(1);
//response.reset();
response.setContentType("image/jpeg");
while((size=sImage.read(bytearray))!= -1 ){
response.getOutputStream().write(bytearray,0,size);
catch(Exception ex){
out.println("error :"+ex);
finally {
// close all the connections.
rs.close();
psmnt.close();
connection.close();
%>
ThanksI have done exactly that in one of my applications.
I have extracted the image from the database as a byte array, and displayed it using a servlet.
Here is the method in the servlet which does the displaying:
(since I'm writing one byte at a time, it's probably not terribly efficient but it works)
private void sendImage(byte[] bytes, HttpServletRequest request, HttpServletResponse response) throws IOException {
ServletOutputStream sout = response.getOutputStream();
for(int n = 0; n < bytes.length; n++) {
sout.write(bytes[n]);
sout.flush();
sout.close();
}Then in my JSP, I use this:
<img src="/path-to-servlet/image.jpg"/>
The name of the image to display is in the URL as well as the path to the servlet. The servlet will therefore need to extract the image name from the url and call the database. -
I want to display invoice details(MIRO) in REPORT
Hi,
i am new for abap can any one please send code for to display miro details in a report based on below logic.
Pass the RSEG-BELNR & RSEG-GJAHR joined together into BKPF-AWKEY to get the MIRO Doc date BKPF-BUDAT, vendor invoice number BKPF-XBLNR& Vendor invoice date BKPF-BLDAT.
Pass the RSEG-BELNR & RSEG-GJAHR joined together into BKPF-AWKEY to get the BKPF-BELNR & BKPF-GJAHR to pass this into BSEG-BELNR BSEG-GJAHR to get the BSEG-LIFNR, BSEG-DMBTR, BSEG-ZTERM corresponding to the vendor code.Set the option PRINT OBJECT ON to First Page, I think this might resolve your problem.
Maybe you are looking for
-
I try to put in a new homepage but it wont change
it changed it by it self and that's why Im trying to change my homepage
-
ERROR: DW050: - Acrobat Professional: Install failed
----------- Payload: {AC76BA86-1033-F400-7760-000000000005} Acrobat Professional 10.0.0.0 ----------- ERROR: Error 1324.The path R嶰up廨er un document num廨is?sur un multifonction.sequ or the volume is invalid. Please enter it again. ERROR: Install MSI
-
What are the alternate methods of transferring data between apps built on ios
Hi All, What could be the alternate methods of transferring data between apps built on ios? Please comment. Thanks Pankaj
-
Dreamweaver not creating paragraph tags upon return
All of a sudden my Dreamweaver is not creating a new paragraph when the enter (return) key is pushed. It has always done so in the past. Any ideas on what might cause this? Thanks
-
In & Out Links in Dreamweaver?
I switched to Dreamweaver from GoLive this year, and I have to say I'm unimpressed with Dreamweaver's site management features in comparison to GoLive's. How can I tell which pages in my site are linked to a particular file? GoLive had a very hand "I