Skip to Main Content

APEX

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Interested in getting your voice heard by members of the Developer Marketing team at Oracle? Check out this post for AppDev or this post for AI focus group information.

Display blob from database on Apex page

newjackDec 27 2018 — edited Jan 4 2019

Hello,

In Apex 5, we have a requirement to have several documents stored as blobs in the database be displayed on an apex page somehow, possibly in a region with the <embed> tag. Searching the forums hasn't revealed a solution.

We tried using the common code snippet

SELECT doc_image, DBMS_LOB.GETLENGTH(doc_image), doc_filename

INTO v_blob , v_length, v_filename

FROM test_download_doc

WHERE doc_id = to_number(i_doc_id);

--

-- set up HTTP header

--

-- use an NVL around the mime type and

-- if it is a null set it to application/octect

-- application/octect may launch a download window from windows

owa_util.mime_header( nvl(v_mime,'application/pdf'), FALSE );

-- set the size so the browser knows how much to download

htp.p('Content-length: ' || v_length);

-- the filename will be used by the browser if the users does a save as

htp.p('Content-Disposition: inline; filename="'||replace(replace(substr(v_filename,instr(v_filename,'/')+1),chr(10),null),chr(13),null)|| '"');

-- close the headers

owa_util.http_header_close;

-- download the BLOB

wpg_docload.download_file( v_blob );

end download_doc;

but that only resulted in the below when trying to render the pdf from the above approach.

bad_pdf.png

Any guidance would be appreciated.

This post has been answered by raudabat on Jan 4 2019
Jump to Answer

Comments

Billy Verreynne

Sounds like the installer attempted to resolve your Windows platform's hostname to an IP address and failed.
What is the primary IP of your platform? Is it DHCP? If so, what assigns the IPs (home router/VPN/etc) and hostname? (use ipconfig to check IP configuration).
If the db installation part succeeded, then getting the Listener working should be trivial. Is the Oracle XE database instance up and running, and can you connect to it using "sqlplus / as sysdba"?

Eslam_Elbyaly

I am sorry. It does not say "Configuring Listener", it says "Configuring Oracle Software". I edited the question.
No sqlplus or any binaries. It's just about 4 folders. Each with a couple of files.
my pc is not connected to a router or anything. I just installed the Lan driver.
ipconfig just shows "media disconnected".
I tried assigning an IP manually but did not work. I even opened the "hosts" file and added a new line with the manual IP I assigned like this.... "192.168.1.1 localhost" without quotes. Always the same problem.

Billy Verreynne

Do NOT set other addresses as localhost.
What is your platform's NetBIOS name? Typically the same name is used as IP hostname.
A "ping <hostname>" should work. If not then it is unlikely that Oracle will work correctly.
You can try adding your hostname to IP 127.0.0.1 in \windows\system32\drivers\etc\hosts (think that's the location). No idea however how your kernel's networking in general will react to it. So undo it in case of encountering errors.
The 127.0.0.0 subnet is yours though. You can look at adding IPs to it for local only hosts and networking via the IP stack's loopback interface.
Recommendation however is a working LAN config.

Eslam_Elbyaly

Do NOT set other addresses as localhost.
There was not any addresses set in the hosts file. All are commented like this...

#127.0.0.1 localhost
#::1 localhost
ping localhost returns.....
reply from ::1: time<1ms
reply from ::1: time<1ms
reply from ::1: time<1ms
reply from ::1: time<1ms
I tried adding 127.0.0.1 localhost and ahmed-PC(my computers name) to the hosts file with no vain.

Billy Verreynne

Your hosts file should look as follows:

127.0.0.1 localhost 
::1       ip6-localhost ip6-loopback 
fe00::0   ip6-localnet 
ff00::0   ip6-mcastprefix 
ff02::1   ip6-allnodes 
ff02::2   ip6-allrouters

You can try adding your PC name to 127.0.0.1:

127.0.0.1  localhost ahmed-pc

However, you should instead define a network interface with a private address such as 192.168.0.11/24.

Eslam_Elbyaly

unfortunately, I figured out that it needs a network specialist or something. I dropped windows 7 and installed windows 8.1 and the database was installed successfully. Thanks Billy for your help.

Billy Verreynne

You should consider dropping Windows entirely for Linux.
And despite the vaccine jab, I still prefer Linux and don't like Gates and Windows. My 5G reception though is now excellent.

Eslam_Elbyaly

Do you mean Oracle Linux? Or another distribution?

Billy Verreynne

I prefer Ubuntu with KDE, called Kubuntu. Ubuntu has excellent device support for laptops and desktops (am using it for both). Plasma KDE is the best desktop GUI.
Been using Kubuntu now for over a decade for Oracle database development and administration and support. Am using Oracle InstantClient (with sqlplus) and SQL-Developer on it. Been using Linux as a desktop for over 20 years.
Oracle however does not support the Debian branch for their db server s/w - they use the Redhat branch. Oracle XE 10g works on Ubuntu, but XE 18c does not.
So I use vagrant on Kubuntu - git clone https://github.com/oracle/vagrant-projects
This has vagrant builds for everything from Oracle RAC, DataGuard, GoldenGate, to Oracle XE.
Change dir to ./vagrant-projects/OracleDatabase/18.4.0.-XE and run vagrant up. Some minutes later you have an Oracle Linux 7 VM running an Oracle XE 18c database.

Billy Verreynne

Oh yeah - alternatives to the typical Windows user s/w stack:
MS Office replaced with Libre (Open) Office. Outlook replaced by Web Outlook. MS Teams Linux version used, or the web-based Teams can be used. Zoom supports Linux. KDE Konsole instead of Putty. Chrome/Firefox instead of Edge/IE11.
No anti-virus needed. And your laptop/desktop will be untouched in a ransome ware attack.
Tons of free Open Source s/w available.
Freedom to choose and configure and install and upgrade.
edit: PS. and OpenConnect for VPN access instead of Cisco AnyConnect.

1 - 10

Post Details

Added on Dec 27 2018
4 comments
1,470 views