(WLS 7.x) Oracle BLOB.createTemporary
I would like to call the Oracle extensions to create a temporary Blob, however,
I'm unable to get to the native Oracle driver. I have the Oracle driver in my
system classpath before webLogic.jar as recommended in other posts, but I'm unable
to get to the oracle connection class as required by the createTemporary method.
Is this possible in WLS 7.x?
TIA
Doug Walker wrote:
Wow Joe! That was a fast reply! :-)no problem. They just happened to pay me last week ;-)
We want you successful.
Joe
>
Joe Weinstein <[email protected]> wrote:
Doug Walker wrote:
I would like to call the Oracle extensions to create a temporary Blob,however,
I'm unable to get to the native Oracle driver. I have the Oracle driverin my
system classpath before webLogic.jar as recommended in other posts,but I'm unable
to get to the oracle connection class as required by the createTemporarymethod.
Is this possible in WLS 7.x?Yes. 7.0sp3 and later... See the docs on getVendorConnection().
Joe
TIA
Similar Messages
-
Hi,
I seldom use the BLOB. Here is the coding that creates a BLOB.
private BLOB getBlob(byte[] str, Connection con) throws SQLException, IOException {
BLOB blob = BLOB.createTemporary(con, true, BLOB.DURATION_SESSION);
blob.open(BLOB.MODE_READWRITE);
OutputStream writer = blob.getBinaryOutputStream();
writer.write(str);
writer.flush();
writer.close();
blob.close();
return blob;
After inserting this BLOB into database table via ojdbc, BLOB.freeTemporary() is called.
BLOB blob = getBlob(compressedClaim,connStore);
rsImagePstmt.setObject(4,blob);
rsImagePstmt.executeUpdate();
BLOB.freeTemporary( blob );
Sometimes it's running ok and finished properly. Sometimes I got the following exception after running 2.5 hours.
Thanks a lot for any suggestion and help. We use oracle 10.2 and java1.4 library here.
> Exception: java.lang.NullPointerException
> at oracle.jdbc.driver.T2CConnection.checkError(T2CConnection.java:669)
> at oracle.jdbc.driver.T2CConnection.checkError(T2CConnection.java:602)
> at oracle.jdbc.driver.T2CConnection.createTemporaryBlob(T2CConnection.java:2039)
> at oracle.sql.BLOB.createTemporary(BLOB.java:590)
If I ran in the debug mode, I got the following errors after 2.5 hours:
An unexpected exception has been detected in native code outside the VM.
Unexpected Signal : EXCEPTION_ACCESS_VIOLATION (0xc0000005) occurred at PC=0x62F0BCF4
Function=Java_oracle_jdbc_driver_T2CStatement_t2cFetchDmlReturnParams+0x594
Library=C:\oracle\product\10.2.0\client\BIN\ocijdbc10.dll
Current Java thread:
at oracle.jdbc.driver.T2CConnection.lobCreateTemporary(Native Method)
at oracle.jdbc.driver.T2CConnection.createTemporaryBlob(T2CConnection.java:2039)
at oracle.sql.BLOB.createTemporary(BLOB.java:590)
at com.viant.consumer.impl.RateSheetConsumer.getBlob(RateSheetConsumer.java:386)
at com.viant.consumer.impl.RateSheetConsumer.finishRateSheet(RateSheetConsumer.java:293)
at com.viant.consumer.impl.RateSheetConsumer.run(RateSheetConsumer.java:156)
at java.lang.Thread.run(Thread.java:534)
Dynamic libraries:
0x00400000 - 0x0040B000 C:\jdk1.4\bin\javaw.exe
0x77220000 - 0x7735C000 C:\Windows\SYSTEM32\ntdll.dll
0x76CE0000 - 0x76DB4000 C:\Windows\system32\kernel32.dll
0x75620000 - 0x7566B000 C:\Windows\system32\KERNELBASE.dll
0x758D0000 - 0x75970000 C:\Windows\system32\ADVAPI32.dll
0x75C10000 - 0x75CBC000 C:\Windows\system32\msvcrt.dll
0x75B20000 - 0x75B39000 C:\Windows\SYSTEM32\sechost.dll
0x77170000 - 0x77211000 C:\Windows\system32\RPCRT4.dll
0x75B40000 - 0x75C09000 C:\Windows\system32\USER32.dll
0x75D50000 - 0x75D9E000 C:\Windows\system32\GDI32.dll
0x77440000 - 0x7744A000 C:\Windows\system32\LPK.dll
0x76F90000 - 0x7702D000 C:\Windows\system32\USP10.dll
0x77360000 - 0x7737F000 C:\Windows\system32\IMM32.DLL
0x75A00000 - 0x75ACC000 C:\Windows\system32\MSCTF.dll
0x62A20000 - 0x62A2C000 C:\PROGRA~1\NETINST\NIAMH.DLL
0x75330000 - 0x75368000 C:\PROGRA~1\SOPHOS\SOPHOS~1\SOPHOS~1.DLL
0x77420000 - 0x77425000 C:\Windows\system32\PSAPI.DLL
0x752B0000 - 0x752C5000 C:\Windows\system32\AMINIT32.DLL
0x08000000 - 0x08139000 C:\jdk1.4\jre\bin\client\jvm.dll
0x73510000 - 0x73542000 C:\Windows\system32\WINMM.dll
0x75210000 - 0x7525C000 C:\Windows\system32\apphelp.dll
0x10000000 - 0x10007000 C:\jdk1.4\jre\bin\hpi.dll
0x00270000 - 0x0027E000 C:\jdk1.4\jre\bin\verify.dll
0x00280000 - 0x00299000 C:\jdk1.4\jre\bin\java.dll
0x002A0000 - 0x002AD000 C:\jdk1.4\jre\bin\zip.dll
0x003D0000 - 0x003EC000 C:\jdk1.4\jre\bin\jdwp.dll
0x002B0000 - 0x002B5000 C:\jdk1.4\jre\bin\dt_socket.dll
0x773E0000 - 0x77415000 C:\Windows\system32\ws2_32.dll
0x75970000 - 0x75976000 C:\Windows\system32\NSI.dll
0x736D0000 - 0x736E0000 C:\Windows\system32\NLAapi.dll
0x71BE0000 - 0x71BF0000 C:\Windows\system32\napinsp.dll
0x71BA0000 - 0x71BB2000 C:\Windows\system32\pnrpnsp.dll
0x74D50000 - 0x74D8C000 C:\Windows\System32\mswsock.dll
0x74C10000 - 0x74C54000 C:\Windows\system32\DNSAPI.dll
0x71BF0000 - 0x71BF8000 C:\Windows\System32\winrnr.dll
0x71C30000 - 0x71C57000 C:\Program Files\Common Files\Microsoft Shared\Windows Live\WLIDNSP.DLL
0x75DA0000 - 0x75DF7000 C:\Windows\system32\SHLWAPI.dll
0x74370000 - 0x7438C000 C:\Windows\system32\IPHLPAPI.DLL
0x74820000 - 0x74827000 C:\Windows\system32\WINNSI.DLL
0x721E0000 - 0x72218000 C:\Windows\System32\fwpuclnt.dll
0x71C20000 - 0x71C26000 C:\Windows\system32\rasadhlp.dll
0x74840000 - 0x74857000 C:\ProgramData\Sophos\Web Intelligence\swi_ifslsp.dll
0x74830000 - 0x74839000 C:\Windows\system32\VERSION.dll
0x76090000 - 0x76CDB000 C:\Windows\system32\SHELL32.dll
0x74810000 - 0x74815000 C:\Windows\System32\wshtcpip.dll
0x01240000 - 0x0124F000 C:\jdk1.4\jre\bin\net.dll
0x62F00000 - 0x62F13000 C:\oracle\product\10.2.0\client\BIN\ocijdbc10.dll
0x08450000 - 0x084A9000 C:\oracle\product\10.2.0\client\bin\OCI.dll
0x7C340000 - 0x7C396000 C:\Windows\system32\MSVCR71.dll
0x61C20000 - 0x61E77000 C:\oracle\product\10.2.0\client\bin\OraClient10.Dll
0x60870000 - 0x60956000 C:\oracle\product\10.2.0\client\bin\oracore10.dll
0x60A80000 - 0x60B47000 C:\oracle\product\10.2.0\client\bin\oranls10.dll
0x63690000 - 0x636A8000 C:\oracle\product\10.2.0\client\bin\oraunls10.dll
0x60EB0000 - 0x60EB7000 C:\oracle\product\10.2.0\client\bin\orauts.dll
0x75770000 - 0x758CC000 C:\Windows\system32\ole32.dll
0x636B0000 - 0x636B6000 C:\oracle\product\10.2.0\client\bin\oravsn10.dll
0x60FA0000 - 0x61098000 C:\oracle\product\10.2.0\client\bin\oracommon10.dll
0x63430000 - 0x63457000 C:\oracle\product\10.2.0\client\bin\orasnls10.dll
0x08C40000 - 0x091B8000 C:\oracle\product\10.2.0\client\bin\orageneric10.dll
0x091C0000 - 0x09337000 C:\oracle\product\10.2.0\client\bin\oraxml10.dll
0x014F0000 - 0x01501000 C:\Windows\system32\MSVCIRT.dll
0x60960000 - 0x60A77000 C:\oracle\product\10.2.0\client\bin\oran10.dll
0x62740000 - 0x62780000 C:\oracle\product\10.2.0\client\bin\oranl10.dll
0x62790000 - 0x627A8000 C:\oracle\product\10.2.0\client\bin\oranldap10.dll
0x627F0000 - 0x628FD000 C:\oracle\product\10.2.0\client\bin\orannzsbb10.dll
0x62530000 - 0x62583000 C:\oracle\product\10.2.0\client\bin\oraldapclnt10.dll
0x62670000 - 0x6268B000 C:\oracle\product\10.2.0\client\bin\orancrypt10.dll
0x71230000 - 0x71237000 C:\Windows\system32\WSOCK32.dll
0x75CC0000 - 0x75D4F000 C:\Windows\system32\OLEAUT32.dll
0x62920000 - 0x6296D000 C:\oracle\product\10.2.0\client\bin\oranro10.dll
0x626B0000 - 0x626B7000 C:\oracle\product\10.2.0\client\bin\oranhost10.dll
0x62660000 - 0x62666000 C:\oracle\product\10.2.0\client\bin\orancds10.dll
0x629C0000 - 0x629C8000 C:\oracle\product\10.2.0\client\bin\orantns10.dll
0x09340000 - 0x096B5000 C:\oracle\product\10.2.0\client\bin\orapls10.dll
0x07B80000 - 0x07B89000 C:\oracle\product\10.2.0\client\bin\oraslax10.dll
0x63080000 - 0x63285000 C:\oracle\product\10.2.0\client\bin\oraplp10.dll
0x61ED0000 - 0x61F68000 C:\oracle\product\10.2.0\client\bin\orahasgen10.dll
0x62AB0000 - 0x62B24000 C:\oracle\product\10.2.0\client\bin\oraocr10.dll
0x084B0000 - 0x084F9000 C:\oracle\product\10.2.0\client\bin\oraocrb10.dll
0x73860000 - 0x73871000 C:\Windows\system32\NETAPI32.dll
0x74B00000 - 0x74B09000 C:\Windows\system32\netutils.dll
0x74F80000 - 0x74F99000 C:\Windows\system32\srvcli.dll
0x73850000 - 0x7385F000 C:\Windows\system32\wkscli.dll
0x73840000 - 0x7384F000 C:\Windows\system32\SAMCLI.DLL
0x74BE0000 - 0x74C02000 C:\Windows\system32\LOGONCLI.DLL
0x62980000 - 0x62991000 C:\oracle\product\10.2.0\client\bin\orantcp10.dll
0x63520000 - 0x635BB000 C:\oracle\product\10.2.0\client\bin\orasql10.dll
0x751E0000 - 0x751FB000 C:\Windows\system32\SspiCli.dll
0x70890000 - 0x7089B000 C:\Windows\system32\cscapi.dll
0x75290000 - 0x7529C000 C:\Windows\system32\CRYPTBASE.dll
0x740B0000 - 0x740F0000 C:\Windows\system32\uxtheme.dll
0x09B80000 - 0x09C92000 C:\jdk1.4\jre\bin\awt.dll
0x72870000 - 0x728C1000 C:\Windows\system32\WINSPOOL.DRV
0x09810000 - 0x09861000 C:\jdk1.4\jre\bin\fontmanager.dll
0x0ACF0000 - 0x0ADD7000 C:\Windows\system32\ddraw.dll
0x73AA0000 - 0x73AA6000 C:\Windows\system32\DCIMAN32.dll
0x76DF0000 - 0x76F8D000 C:\Windows\system32\SETUPAPI.dll
0x753F0000 - 0x75417000 C:\Windows\system32\CFGMGR32.dll
0x75450000 - 0x75462000 C:\Windows\system32\DEVOBJ.dll
0x73C80000 - 0x73C93000 C:\Windows\system32\dwmapi.dll
0x0ADE0000 - 0x0AE71000 C:\Windows\system32\igdumdx32.dll
0x0AF10000 - 0x0B3E1000 C:\Windows\system32\igdumd32.dll
0x742C0000 - 0x742E5000 C:\Windows\system32\PowrProf.dll
0x66150000 - 0x6621C000 C:\Windows\system32\D3DIM700.DLL
0x76DC0000 - 0x76DEA000 C:\Windows\system32\imagehlp.dll
0x70BF0000 - 0x70CDB000 C:\Windows\system32\dbghelp.dll
Heap at VM Abort:
Heap
def new generation total 4608K, used 291K [0x10010000, 0x10510000, 0x12770000)
eden space 4096K, 5% used [0x10010000, 0x10046aa0, 0x10410000)
from space 512K, 14% used [0x10490000, 0x104a2208, 0x10510000)
to space 512K, 0% used [0x10410000, 0x10410000, 0x10490000)
tenured generation total 60544K, used 56437K [0x12770000, 0x16290000, 0x30010000)
the space 60544K, 93% used [0x12770000, 0x15e8d4b8, 0x15e8d600, 0x16290000)
compacting perm gen total 12800K, used 12682K [0x30010000, 0x30c90000, 0x34010000)
the space 12800K, 99% used [0x30010000, 0x30c72900, 0x30c72a00, 0x30c90000)
Local Time = Thu Oct 17 11:29:35 2013
Elapsed Time = 9003
# The exception above was detected in native code outside the VMHi!
It seems you can do this:
try {
conn = new OracleDriver().defaultConnection(); graphblob = oracle.sql.BLOB.createTemporary(conn, false,oracle.sql.BLOB.DURATION_CALL); // must init
System.out.println("Blob is init");
} catch ( java.sql.SQLException sEx ) {
throw new RuntimeException ("No connection", sEx);
http://asktom.oracle.com/pls/ask/f?p=4950:8:::::F4950_P8_DISPLAYID:1285601748584
http://www.unix.org.ua/orelly/oracle/guide8i/ch09_08.htm
/Bjoern -
Java source / oracle.sql.BLOB.createTemporary
Hi!
I want to write some java-code (CREATE OR REPLACE AND RESOLVE JAVA SOURCE NAMED...)
where I want to return an image as blob.
For doing that I have to initialize the blob in the java-code -correct?
I see many examples like
oracle.sql.BLOB.createTemporary(conn, false,oracle.sql.BLOB.DURATION_CALL)
In PL/SQL there is some similar:
dbms_lob.createtemporary(lob_loc => xmlclob, cache => TRUE, dur => dbms_lob.SESSION);
If I have to initialize the blob in the java source, how to do that?
I don't want an connection to an remote database, the java-code will be in the database, so can I call createTemporary without >conn<?
(Oracle 10gR2, Windows, Linux, AIX)
The picture will be generated calling other java-code loaded with loadjava.
The java-source I want to write will be wrapped with PL/SQL.
Greetings
BjørnHi!
It seems you can do this:
try {
conn = new OracleDriver().defaultConnection(); graphblob = oracle.sql.BLOB.createTemporary(conn, false,oracle.sql.BLOB.DURATION_CALL); // must init
System.out.println("Blob is init");
} catch ( java.sql.SQLException sEx ) {
throw new RuntimeException ("No connection", sEx);
http://asktom.oracle.com/pls/ask/f?p=4950:8:::::F4950_P8_DISPLAYID:1285601748584
http://www.unix.org.ua/orelly/oracle/guide8i/ch09_08.htm
/Bjoern -
ClassCastException in oracle.sql.BLOB.createTemporary
Hi,
I'm having a ClassCastException problem using the method oracle.sql.BLOB.createTemporary while trying to store a BLOB value (JDBC classes12.jar). The problem is quite clear - if I use the method with a dedicated database connection that specifies the driver as oracle.jdbc.driver.OracleDriver there is no problem - if I use it with an Orion datasource shipped with Oracle IAS10g it gives me a ClassCastException. I imagine that somewhere in the code of this method there is a cast of the underlying connection leading to the ClassCastException when used in conjunction with the Orion datasource. The code to save the BLOB is as follows:
oracle.sql.BLOB blob = oracle.sql.BLOB.createTemporary(st.getConnection(), false,
oracle.sql.BLOB.DURATION_SESSION);
blob.open(BLOB.MODE_READWRITE);
OutputStream out = blob.getBinaryOutputStream();
try {
out.write((byte[])value);
out.flush();
out.close();
} catch (IOException e) {
throw new SQLException("failed write to blob" + e.getMessage());
blob.close();
((oracle.jdbc.OraclePreparedStatement)(st)).setBLOB(index, blob);
My questions are:
(1) is it possibile to save a BLOB type with a different version of Oracle JDBC without having to rely on the Oracle specific implementation of the JDBC interface (the cast of the PreparedStatement to oracle.jdbc.OraclePreparedStatement is quite ugly and not very portable!).
(2) if not, then how can I get this code to work with the datasource implementation for Oracle IAS.
thanks in advance for any help.
Dara.If you are using OCI driver, you may check whether using thin driver would avoid ClassCastException.
-
ClassCast Exception at oracle.sql.BLOB.createTemporary
Hi...
I am facing a problem that when I am trying to open a temporary BLOB, I am getting a ClassCastException. Below is a part of stack trace:
java.lang.ClassCastException: weblogic.jdbc.rmi.SerialConnection_weblogic_jdbc_rmi_internal_ConnectionImpl_weblogic_jdbc_wrapper_PoolConnection_oracle_jdbc_driver_T4CConnection_1034_WLStub
at oracle.sql.BLOB.createTemporary(BLOB.java:684)
I am using Weblogic 10.3.4.0 with Jrocket 1.6 Update 24 in my JAVA_HOME.
Initially I thought this is a JDBC driver problem, then I tried with ojdbc14.jar, ojdbc5.jar, ojdbc6.jar but same result.
With more googling I found some other reasons like:
"Problem which seems to be that despite the fact that method BLOB.createTemporary takes a java.sql.Connection object as a parameter, it only works if the Connection is an oracle.jdbc.driver.OracleConnection object. If it's not an oracle.jdbc.driver.OracleConnection, then I get a ClassCastException. "
I also found out that the problem happens because when I run my code in Weblogic and get the database connection via a DataSource object that I lookup via JNDI, the connection is not a real OracleConnection object, but an object that wraps the real OracleConnection.
Now the question is how do I solve this? In My DataSource->Connection Pool-> I have unchecked the "Wrap Data Types" and it still it doesn't work.
Not using Connection Pool is out of the question as this is not a viable solution.
Feel free to ask me whatever details you want, but need a urgent solution for this.
Regards,
PriyamIf you are using OCI driver, you may check whether using thin driver would avoid ClassCastException.
-
Can I use oracle blob by CMP bean in weblogic 6?
I use weblogic 6.1(sp3) and Jbuilder 7.when I try to use oracle blob by CMP bean,the
errors are:
javax.ejb.FinderException: Exception raised in findByPrimaryKey
java.io.StreamCorruptedException: InputStream does not contain a serialized object
What should I do?Is there examples about using oracle blob?
thanks a lot!Great! So what was the problem?
Regards,
Slava Imeshev
"Roger Lee" <[email protected]> wrote in message
news:[email protected]...
>
Finally got it working with CMP, which is my preferred choice (over BMP).
I read the Excel Spreadsheet into a "byte []" array, and the Entity Beanmapped
"byte []" to the Blob column in the Oracle table.
"Slava Imeshev" <[email protected]> wrote:
Roger,
I'm not quite sure I undestand the problem. Could you:
1. Post deployment descriptors in part related to this
CMP bean?
2. Post the piece of code that is failing?
Please post the information above and we will help
you to hunt the problem down.
No, I don't have any problems accessing blobs
from CMP.
Regards,
Slava Imeshev
"Roger Lee" <[email protected]> wrote in message
news:[email protected]...
Yes. I have added;
<dbms_column-type>OracleBlob</dbms-column-type>
It fails because the locater to the blob, obtained by findBYPrimaryKeyis
null.
i.e. an empty_blob() is not created.
Have you got CMP to access Blobs in WLS 6.1?
"Slava Imeshev" <[email protected]> wrote:
Hi Roger,
Have you tried using OracleBlob as dbms-column-type?
Also, could you post that part of your code that is failing?
Regards,
Slava Imeshev
"Roger Lee" <[email protected]> wrote in message
news:[email protected]...
I can access Clobs using CMP. If you are using the Oracle OCI Driveryou
do not
need to add this line.
However if you are using the Oracle Type 4 Thin drivers you need
to
add;
<dbms_column-type>OracleClob</dbms-column-type>
to the file;
weblogic-cmp-rdbms-jar-xml
This DOES NOT work with Blobs.
I am unable to get WebLogic 6.1 sp4 persist a Blob to an Oracle
8.1.x
table and
retrieve it using either CMP or BMP.
Unless any one show me a complete working CMP and BMP example?
Roger Lee
Deepak Vohra <[email protected]> wrote:
BLOB and CLOB DBMS Column Support for the Oracle DBMS
http://edocs.bea.com/wls/docs61/ejb/cmp.html#1061636
shybird wrote:
I use weblogic 6.1(sp3) and Jbuilder 7.when I try to use oracle
blob
by CMP bean,the
errors are:
javax.ejb.FinderException: Exception raised in findByPrimaryKey
java.io.StreamCorruptedException: InputStream does not contain
a
serialized
object
What should I do?Is there examples about using oracle blob?
thanks a lot! -
Oracle error ORA-01461when trying to insert into an ORACLE BLOB field
I am getting Oracle error ‘ORA-01461: can bind a LONG value only for insert into a LONG column' when trying to insert into an ORACLE BLOB field. The error occurs when trying to insert a large BLOB (JPG), but does not occur when inserting a small (<1K) picture BLOB.(JPG). Any ideas?
BTW, when using a SQL Server datasource using the same code.... everything works with no problems.
ORACLE version is 11.2.0.1
The ORACLE datasource is JDBC using Oracle's JDBC driver ojdbc6.jar v11.2.0.1 (I also have tried ojdbc5.jar v11.2.0.1; ojdbc5.jar v11.2.0.4; and ojdbc6.jar v11.2.0.4 with the same error result.)
Here is my code:
<cfset file_mime = Lcase(Right(postedXMLRoot.objname.XmlText, 3))>
<cfif file_mime EQ 'jpg'><cfset file_mime = 'jpeg'></cfif>
<cfset file_mime = 'data:image/' & file_mime & ';base64,'>
<cfset image64 = ImageReadBase64("#file_mime##postedXMLRoot.objbase64.XmlText#")>
<cfset ramfile = "ram://" & postedXMLRoot.objname.XmlText>
<cfimage action="write" source="#image64#" destination="#ramfile#" overwrite="true">
<cffile action="readbinary" file="#ramfile#" variable="image_bin">
<cffile action="delete" file="#ramfile#">
<cfquery name="InsertImage" datasource="#datasource#">
INSERT INTO test_images
image_blob
SELECT
<cfqueryparam value="#image_bin#" cfsqltype="CF_SQL_BLOB">
FROM dual
</cfquery>Can't you use "alter index <shema.spatial_index_name> rebuild ONLINE" ? Thanks. I could switch to "rebuild ONLINE" and see if that helps. Are there any potential adverse effects going forward, e.g. significantly longer rebuild than not using the ONLINE keyword, etc? Also wondering if spatial index operations (index type = DOMAIN) obey all the typical things you'd expect with "regular" indexes, e.g. B-TREE, etc.
-
JDBC Receiver Adapter and Oracle BLOB
Hi,
I would like to put some raw data into an ORACLE BLOB using XI. My idea was to put the data in an xml element, but the JDBC sender adapter doesn't seem to be able to cope with writing. Has anybody gathered experiences regarding this topic?
Kind regards,
HeikoHi,
The error saying it is unable to connect to the Database, so it may be the drivers problem. once check the drivers and its syntaxes.
Syntax :
http://www.devx.com/tips/tip/28818
For Download and configure the drivers :
http://www.aquafold.com/docs-jdbcdrivers-oracle10g.html
http://www.oxygenxml.com/database_drivers.html
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/f04ce027-934d-2a10-5a8f-fa0b1ed4d88f -
Sending image from MS SQL SERVER to Oracle BLOB
Hey all, we're trying update Oracle via a SQL Server linked server and we're having an issue with a blob column. The update from SQL is:
UPDATE Banner..GENERAL.PS_EBI_IF_TBL
set photo = a.blob_file, photo_change_date=a.blob_date
from PWNT.dbo.BLOBS a, PWNT.dbo.BADGE_V b
where a.ID = b.ID
and base_name = b.BADGE_BASE_NAME
and b.BADGE_blob_date > getdate()-.021
GO
The error we get is:
OLE DB provider "OraOLEDB.Oracle" for linked server "Banner" returned message "ORA-01747: invalid user.table.column, table.column, or column specification".
The syntax is correct, we can run it if the column being updated (photo) is not a blob, so we believe there is something else we have to do because of the blob. Has anybody done anything like this and know how it works? Thanks!
TomGiven that there are no version numbers is your post I can imagine many possibilities for misconfiguration. Especially as an Oracle BLOB bears no direct size relationship to anything MS SQL could possibly support.
-
Oracle BLOB value to a LC variable
Hello,
Is it possible in LC ES2 to coerce oracle blob value to some livecycle variable ?
When mapping sql query result (column of type BLOB) to a LC variable (of type Document), we receive:
com.adobe.workflow.datatype.InvalidCoercionException: Cannot coerce object: oracle.sql.BLOB@27e7d6 of type: oracle.sql.BLOB to type: com.adobe.idp.Document
We have tried mapping to string, binary, Document (, we even desperately hardcoded sql.oracle.BLOB to process XML), but none of this works.
Is it possible to solve this other way, then following ?
http://groups.google.com/group/livecycle/browse_thread/thread/6c4b9156b52b71a7
Thanks.My idea is to fetch the BLOB column data as UTF8 (base64) encoded string and then use getDocumentFromBase64 available in ES2.
I am not sure what syntax is to fetch from ORACLE.
I have used MySql database and the query is:
SELECT CONVERT(Blob_Column USING UTF8) as MyBlobDataAsBase64Str FROM myTableName;
Now using SetValue activity to look like: myXMLvariable = getDocumentFromBase64(strVariableHoldingBase64Data)
This case works perfectly without any issues.
The problems is you should find out the appropriate syntax for ORACLE.
I was searching about CONVERT() & UNISTR() functions. But i'm unable to evaluate.
Try by yourself..
Nith -
Store pdf in oracle BLOB hibernate
I need to store PDF files in the oracle BLOB using hibernate. I am using the below code and getting a null pointer. Any thoughts?
Blob blob=null;
byte [] bFile = (byte[])objVal;
blob.setBytes(0,bFile); //null pointer here...
logger.info("EventsDAO- insertDetails- else:--"+((byte[])objVal)+"---blob----"+blob);
hmForm.put(objKey,blob); Thanks in advance.Samples? Are you asking how to make a blob? I have my doubts about the wisdom of using Hibernate if you can't diagnose a NPE unless that was just momentary code snow-blindness, but whatever, it's your problem:
Either call Hibernate.createBlob(InputStream,long) or just map the field as a byte[] and map it to a Blob type.
Edited by: dcminter on 09-Jun-2008 22:22 -
I cannot display image (read from oracle BLOB field) on browser?
I cannot display image (read from oracle BLOB field) on browser?
Following is my code, someone can give me an advise?
content.htm:
<html>
<h1>this is a test .</h1>
<hr>
<img src="showcontent.jsp">
</html>showcontent.jsp:
<%@ page import="com.stsc.util.*" %>
<%@ include file="/html/base.jsp" %>
<%
STDataSet data = new STDataSet();
//get blob field from database
String sql = "SELECT NR FROM ZWTAB WHERE BZH='liqf004' AND ZJH='001'";
//get the result from database
ResultSet rs = data.getResult(sql,dbBase);
if (rs!=null && rs.next()) {
Blob myBlob = rs.getBlob("NR");
response.setContentType("image/jpeg");//
byte[] ba = myBlob.getBytes(1, (int)myBlob.length());
response.getOutputStream().write(ba);
response.getOutputStream().flush();
// close your result set, statement
data.close();
%>Don't use jsp for that, use servlet. because the jsp engine will send a blank lines to outPutStream corresponding to <%@ ...> tags and other contents included in your /html/base.jsp file before sending the image. The result will not be treated as a valid image by the browser.
To test this, type directly showcontent.jsp on your browser, and view it source.
regards -
Image from Oracle BLOB is not showing
Hi all!
Im trying to use this code:
<?php
//... etc
$sql = oci_parse($c, 'select * from pf2.documents ');
oci_execute($sql);
echo "<table width = 200 border = 1 cellspacing=0 cellpadding=0>";
while ($row = oci_fetch_assoc($sql)) {
echo "<tr>";
echo"<td style=background-color:#DDDEEE; align=center>";
echo $row['SHORTNAME'] ;
echo"</td>";
echo"<td style=background-color:#DDDEEE; align=center>";
print $row['FILENAME'] ->load();
echo"</td>";
echo "</tr>";
echo "</table>";
//... etc
?>
Here im trying to select and publish an image from Oracle BLOB,
but in Mozilla Firefox im getting just whong text:
яШяа�JFIF��`�`��яЫ�C� $.' ",#(7),01444'9=82<.342яЫ�C 2!!22222222222222222222222222222222222222222222222222яА�МЂ"�яД����������� яД�µ���}�!1AQa"q2Ѓ‘Ў#B±БRСр$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzѓ„…†‡€‰Љ’“”•–—�™љўЈ¤Ґ¦§Ё©ЄІіґµ¶·ё№єВГДЕЖЗИЙКТУФХЦЧШЩЪбвгдежзийкстуфхцчшщъяД�������� яД�µ��w�!1AQaq"2ЃB‘Ў±Б #3RрbrС $4б%с
Please help!
P.S.: Im using PHP 5.2.10 under Wintel platform,
Oracle 9.2.0.4,
create table DOCUMENTS
DOCID NUMBER(10) not null,
SHORTNAME VARCHAR2(30) not null,
FULLNAME VARCHAR2(250) not null,
FILENAME BLOB not null,
AUTHOR VARCHAR2(30) not null,
CREATIONDT DATE not null,
VERSION VARCHAR2(10) not null
Edited by: user502299 on 28.09.2009 5:33I am having a similiar problem. I have created the image.php file:
<?
$query = "select a.image_file FROM officer_image a, officer_info b where a.officer_id=b.officer_id and b.officer_lname like 'LEDEZ%' ";
$stmt = @OCIParse ($db_conn, $query);
@OCIExecute($stmt, OCI_DEFAULT);
@OCIFetchInto($stmt, $arr, OCI_ASSOC+OCI_RETURN_LOBS);
$result = $arr['BLOB'];
@OCIFreeStatement($stmt);
@OCILogoff($conn);
$im = @imagecreatefromstring ($result);
if (!$im) {
$im = imagecreate(150, 30);
$bgc = imagecolorallocate($im, 255, 255, 255);
$tc = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 150, 30, $bgc);
imagestring($im, 1, 5, 5, "", $tc);
Header("Content-type: image/jpeg");
Header("Content-Disposition: attachment; filename=filename_".uniqid(time()).".jpg");
imagejpeg($im,'',100);
imagedestroy($im);
?>
And then in the actual search web page:
<?php
$tname = $_POST['lname'];
$lname = "{$tname}%";
$id = "1";
//$query = "SELECT officer_id, image_file FROM officer_image WHERE ID='.$id.'";
$query = "select a.image_file FROM officer_image a, officer_info b where a.officer_id=b.officer_id and b.officer_lname like 'LEDEZ%' ";
//oci_bind_by_name($sql, ":bv", $lname);
//oci_execute($sql);
$stid = OCIParse($conn,$query);
Header("content-type:image/jpeg");
OCIExecute($stid, OCI_DEFAULT);
while($succ= OCIFetchInto($stid,$row)) {
foreach($row as $item) {
$blob_message = $item->load();
// Output the image
//imagejpeg($blob_message);
echo $blob_message . " " ;
//echo "<img src="image.php?id='.$blob_message.'" border="0">. $rows['officer_id']."\">\n";
echo "<br /><br />";
// Free up memory
//imagedestroy($im);
//while ($row = oci_fetch_assoc($sql))
?>
Can anyone help? -
I'm getting a ClassCastException when I try to the blob I get from my CallableStatment. I've seen alot of post about similar issues with oracle 9 and inserting blobs but I havn't found a solution..
Here is the few lines that Im doing..
When I check to see what type of instance this blob is this is what I get in my debugger oracle.sql.BLOB@71d768
so When I ((BLOB)blob).getBinaryOutputStream() I get the ClassCastException..
I've tried to get the innermost delegate and a number of other things.. When I try to cast anything to the Oracle type I get the ClassCastException. When i do an instanceof on the blob it isn't an oracle Blob.. So why does the debugger and getClass().getName() tell me it is.. And is the any work around for this..
Thanks
Dan
cstmt.registerOutParameter(6, OracleTypes.BLOB);
cstmt.execute();
Blob blob = cstmt.getBlob(6);
if(blob != null) {
writer = new ObjectOutputStream( ((BLOB)blob).getBinaryOutputStream());
if (writer != null) {
writer.writeObject(bean);
writer.flush();
writer.close();
con.commit();Yes, I modified some code that a collegue used in a standalone application.. His solution was using a CLOB.. I just modified my solution to use a CLOB instead of a BLOB(saving a bean as xml instead of the bean object)..
So i litterally copied his code line for line.. And Im getting the same error. My app is running in tomcat whereas my collegue is using it in a standalon application. I just went thru all lib directories to make sure I only have one copy of the oracle ojdbc14.jar which is in the conf/lib directory of the tomcat server..
I even moved my table from our oracle9 db to our oracle 10 db and still no luck..
String beanToXml = xstream.toXML(bean);
cstmt.execute();
oracle.sql.CLOB clob = ((OracleCallableStatement) cstmt).getCLOB(6)
if (clob != null) {
writer = ((CLOB) clob).getCharacterOutputStream();
if (writer != null) {
writer.write(beanToXml.toCharArray());
writer.flush();
writer.close();
} -
I am using Oracle Blobs to write 100 KB XML file to the database. I find the time required for writing this file to the database is around 300 ms .
Can anyone suggest performance improvementsWhich jdbc driver are you using? Have you looked at the docs for the driver that you are using for performance hints?
Is this a standalone program or is it a J2EE application? If a J2EE application, try the same thing from a standalone app to benchmark against
Maybe you are looking for
-
Open VI Reference prevents execution of other parallel threads
I am using splash screen to start an application. I use dynamic loading of the Main.vi and an animation during the loading, both in parallel threads (see image below). However, when the Open VI reference VI is called everything else stops executing (
-
500 Internal Server error while launching Web Analysis
Hi, I've a production machine on which Web Analysis is installed, and it was working fine for almost a year now. But today when I'm launching it is resulting in the following error, Internal Server Error The server encountered an internal error or mi
-
Scan to Computer has stopped working
Can no longer scan to the computer. Scan to Computer error message is "an error occurred while communicating with the scanner". Am using Mac OS X 10.10 Yosemite. Printing from computer and ePrinting is working. HP Utility says Driver is HP Inkjet 8
-
B2B EDI translation ----Is it possible to increase the sub-element length
B2B EDI translation ----Is it possible to increase the sub-element length?? Am new to the B2B 10g- EDI Integration environment. In our production setup, am getting the following error. B2B EDI Translation failed, because one of the fields was too lon
-
Adobe flash player update will not install and Ican not run and video on computer from internet expl
Internet explorer asks to upgrade flashplayer and it will not install,now I have no streaming video .