DBMS_LOB을 이용한 BLOB 데이타 HANDLING 예제 프로그램

제품 : PRECOMPILERS
작성날짜 : 1998-09-15
DBMS_LOB을 이용한 BLOB 데이타 HANDLING 예제 프로그램
==================================================
1) select 하는 예제
- pro*c 2.2에서 compile하는 경우는 package로 DBMS_LOB package 호출을
encapsulate 해서 사용해야 하고, proc 8.0 이상에서 compile하는 경우
DBMS_LOB package를 직접 호출하는 것이 가능하다.
- make 방법
PRO*C 8.0인 경우
$ make -f demo_proc.mk EXE=my_prog OBJS=my_prog.o build \
PROCFLAGS="sqlcheck=full userid=scott/tiger define=V8"
PRO*C 2.2:
$ setenv TWO_TASK v8_alias
$ make -f proc.mk EXE=my_prog OBJS=my_prog.o build \
PROCFLAGS="sqlcheck=full userid=scott/tiger"
- 수행 SQL Script
create or replace package blob_it as
my_blob blob;
function get_blob_len return number;
procedure read_blob(amount in out number, offset in number,
buf in out raw);
end;
create or replace package body blob_it as
function get_blob_len return number is
begin
return DBMS_LOB.GETLENGTH(my_blob);
end;
procedure read_blob(amount in out number, offset in number,
buf in out raw) is
begin
DBMS_LOB.READ(my_blob,amount,offset,buf);
end;
end;
drop table lob_tab;
create table lob_tab (c1 number, c2 blob);
insert into lob_tab values (1,
utl_raw.cast_to_raw('AAAAAAAaaaaaaaaaa'));
- Program 예제
#include <stdio.h>
#include <string.h>
#define TERM(X) ( X.arr[X.len] = '\0' )
#define SLEN(X) ( X.len = strlen((char *)X.arr) )
#define READ_SIZE 60
EXEC SQL INCLUDE SQLCA;
/* Structure for VARRAW */
typedef struct {short len; char arr[READ_SIZE];} vr;
EXEC SQL BEGIN DECLARE SECTION;
VARCHAR oracleid[20];
EXEC SQL TYPE vr IS VARRAW(READ_SIZE);
vr my_vr;
EXEC SQL END DECLARE SECTION;
FILE *fp;
main()
char action_str[30];
long amount;
long offset;
short done;
long total;
EXEC SQL WHENEVER SQLERROR DO o_error(action_str);
strcpy( (char *)oracleid.arr, "scott/tiger" );
SLEN( oracleid );
strcpy( action_str, "connecting to d/b" );
EXEC SQL CONNECT :oracleid;
fp = fopen("my_blob.dat","wb");
strcpy( action_str, "fetching blob locator" );
EXEC SQL EXECUTE
BEGIN
select c2 into blob_it.my_blob from lob_tab
where c1 = 1;
#ifndef V8
:total := blob_it.get_blob_len;
#else
:total := DBMS_LOB.GETLENGTH(blob_it.my_blob);
#endif
END;
END-EXEC;
amount = READ_SIZE;
offset = 1;
done = 0;
strcpy( action_str, "reading from blob" );
while (!done)
EXEC SQL EXECUTE
BEGIN
#ifndef V8
blob_it.read_blob(:amount,:offset,:my_vr);
#else
DBMS_LOB.READ(blob_it.my_blob,:amount,:offset,:my_vr);
#endif
END;
END-EXEC;
offset += amount;
if (offset >= total)
done = 1;
fwrite(my_vr.arr,(size_t)amount,(size_t)1,fp);
fclose(fp);
EXEC SQL WHENEVER SQLERROR CONTINUE;
EXEC SQL ROLLBACK WORK RELEASE;
int o_error( action_str )
char *action_str;
int i;
char error_str[150];
EXEC SQL WHENEVER SQLERROR CONTINUE;
for ( i = 0; i < sqlca.sqlerrm.sqlerrml; i++ )
error_str[i] = sqlca.sqlerrm.sqlerrmc;
error_str[i] = '\0';
printf( "\nFailed with following Oracle error while %s:\n\n%s",
action_str, error_str );
EXEC SQL ROLLBACK WORK RELEASE;
exit(1);
2) insert 하는 예제
- 수행 SQL문
create directory BFILE_DIR as '/mnt3/rctest80/ldt';
- make 방법
$ make -f demo_proc.mk EXE=my_prog OBJS=my_prog.o build \
PROCFLAGS="sqlcheck=full userid=scott/tiger"
- Bfile을 이용하여 데이타를 로드하는 프로그램 예제
#include <stdio.h>
#include <string.h>
#define SLEN(X) ( X.len = strlen((char *)X.arr) )
EXEC SQL INCLUDE SQLCA;
VARCHAR oracleid[20];
FILE *fp;
main()
char action_str[30];
EXEC SQL WHENEVER SQLERROR DO o_error(action_str);
strcpy( (char *)oracleid.arr, "scott/tiger" );
SLEN( oracleid );
strcpy( action_str, "connecting to d/b" );
EXEC SQL CONNECT :oracleid;
EXEC SQL EXECUTE
DECLARE
lobd BLOB;
fils BFILE :=BFILENAME('BFILE_DIR', 'a30.bmp');
amt INTEGER;
BEGIN
insert into lob_tab values (1, empty_blob())
returning c2 into lobd;
DBMS_LOB.FILEOPEN(fils, dbms_lob.file_readonly);
DBMS_LOB.LOADFROMFILE(lobd, fils, dbms_lob.getlength(fils));
DBMS_LOB.FILECLOSE(fils);
END;
END-EXEC;
EXEC SQL COMMIT WORK RELEASE;
int o_error( action_str )
char *action_str;
int i;
char error_str[150];
EXEC SQL WHENEVER SQLERROR CONTINUE;
for ( i = 0; i < sqlca.sqlerrm.sqlerrml; i++ )
error_str[i] = sqlca.sqlerrm.sqlerrmc[i];
error_str[i] = '\0';
printf( "\nFailed with following Oracle error while %s:\n\n%s",
action_str, error_str );
EXEC SQL ROLLBACK WORK RELEASE;
exit(1);

Similar Messages

  • Attempt to access expired blob handle

    We get a random error in our test environment after upgrading from SQL server 2008 R2 to 2012.
    System.Data.SqlClient.SqlException (0x80131904): A system assertion check has failed. Check the SQL Server error log for details. Typically, an assertion failure is caused by a software bug or data corruption. To check for database corruption, consider running
    DBCC CHECKDB. If you agreed to send dumps to Microsoft during setup, a mini dump will be sent to Microsoft. An update might be available from Microsoft in the latest Service Pack or in a QFE from Technical Support.
    A severe error occurred on the current command.  The results, if any, should be discarded.
    Location:  tmpilb.cpp:2576
    Expression:  fFalse
    SPID:   55
    Process ID:  1552
    Description:  Attempt to access expired blob handle (3)
    The weird thing is that is looks almost exactly like the below kb article, we are using a matching scenario as the symptons described in the below kb.
    support.microsoft.com/kb/2644794/
    It did not make this issue in 2008 R2, we then took the database from 2008 R2 and attached to the 2012 db server, and then
    Event viewer (throws a lot of the 4 below errors):
    Level Date   Source   Event Id Task category
    Error 01-04-2014 17:42:00 MSSQL$DGOFFICEMAINSQL 17310  Server
     A user request from the session with SPID 58 generated a fatal exception. SQL Server is terminating this session. Contact Product Support Services with the dump produced in the log directory.
    Error 01-04-2014 17:41:59 MSSQL$DGOFFICEMAINSQL 17065  Server
     SQL Server Assertion: File: <tmpilb.cpp>, line = 2576 Failed Assertion = 'fFalse' Attempt to access expired blob handle (3). This error may be timing-related. If the error persists after rerunning the statement, use DBCC CHECKDB to check the database
    for structural integrity, or restart the server to ensure in-memory data structures are not corrupted.
    Error 01-04-2014 17:41:58 MSSQL$DGOFFICEMAINSQL 3624  Server
     A system assertion check has failed. Check the SQL Server error log for details. Typically, an assertion failure is caused by a software bug or data corruption. To check for database corruption, consider running DBCC CHECKDB. If you agreed to send dumps
    to Microsoft during setup, a mini dump will be sent to Microsoft. An update might be available from Microsoft in the latest Service Pack or in a QFE from Technical Support.
    Error 01-04-2014 14:47:41 MSSQL$DGOFFICEMAINSQL 17066  Server
     SQL Server Assertion: File: <qxcntxt.cpp>, line=1137 Failed Assertion = '!"No exceptions should be raised by this code"'. This error may be timing-related. If the error persists after rerunning the statement, use DBCC CHECKDB to check
    the database for structural integrity, or restart the server to ensure in-memory data structures are not corrupted.
    (DBCC CHECKDB) has been run, and no errors seems to occur
    All usefull ideas are welcome :)

    OMG weirdest thing ever:
    I have installed SQL server 2012 SP1 on my Windows 7 machine, running the program against the same database, then I tried to replicate the error:
    Using IE 11 going to the page that causes the issue, validating in event viewer at the same time, nothing happens, everything looks good.
    Using Newest FF or Chrome, CONSISTANTLY throws 3 event logs, everytime I go to the page, 2x event id 17065 and 1 x 17066, I assume it throws the other errors upon too many, or too frequent errors.
    But WHY, I simply cannot wrap my brain around why such a feature inside the SQL server, should be able to act differently based on the browser.
    Error 01-04-2014 17:41:59 MSSQL$DGOFFICEMAINSQL 17065  Server
     SQL Server Assertion: File: <tmpilb.cpp>, line = 2576 Failed Assertion = 'fFalse' Attempt to access expired blob handle (3). This error may be timing-related. If the error persists after rerunning the statement, use DBCC CHECKDB to check the database
    for structural integrity, or restart the server to ensure in-memory data structures are not corrupted.
    Error 01-04-2014 14:47:41 MSSQL$DGOFFICEMAINSQL 17066  Server
     SQL Server Assertion: File: <qxcntxt.cpp>, line=1137 Failed Assertion = '!"No exceptions should be raised by this code"'. This error may be timing-related. If the error persists after rerunning the statement, use DBCC CHECKDB to check the database
    for structural integrity, or restart the server to ensure in-memory data structures are not corrupted.
    I am still very interested in good ideas!!!

  • Blob handling

    1 declare
    2 l_blob blob;
    3 l_bfile bfile;
    4 begin
    5 insert into demo values ( 1, empty_blob() )
    6 returning theBlob into l_blob;
    7 l_bfile := bfilename( 'ext_dir', 'DSC00963.JPG' );
    8 dbms_lob.fileopen( l_bfile );
    9 dbms_lob.loadfromfile( l_blob, l_bfile,
    10 dbms_lob.getlength( l_bfile ) );
    11 dbms_lob.fileclose( l_bfile );
    12* end;
    SQL> /
    declare
    ERROR at line 1:
    ORA-22285: non-existent directory or file for FILEOPEN operation
    ORA-06512: at "SYS.DBMS_LOB", line 523
    ORA-06512: at line 8
    where am i going wrong?

    thanks for your reply, i changed what u mentioned, after that it showed like this
    1 declare
    2 l_blob blob;
    3 l_bfile bfile;
    4 begin
    5 insert into demo values ( 1, empty_blob() )
    6 returning theBlob into l_blob;
    7 l_bfile := bfilename( 'EXT_DIR', 'DSC00963.JPG' );
    8 dbms_lob.fileopen( l_bfile );
    9 dbms_lob.loadfromfile( l_blob, l_bfile,
    10 dbms_lob.getlength( l_bfile ) );
    11 dbms_lob.fileclose( l_bfile );
    12* end;
    SQL> /
    declare
    ERROR at line 1:
    ORA-22288: file or LOB operation FILEOPEN failed
    The system cannot find the path specified.
    ORA-06512: at "SYS.DBMS_LOB", line 523
    ORA-06512: at line 8

  • About blob handling - how to display document type and document name?

    Hi,
    I am developing an APEX application, and I need a report region with a blob column(document) in it, and I want it to display like this :
    with an image on the left side(different images for different type of docs such as word, pdf, txt) ,
    and the file name on the right, with a download link on the file name, and also get the file name included into the download link address,
    also have the file size displayed in the report.
    I failed on getting this done with the help of any document, any help will be very much appreciated.
    Thanks.

    OK this link is very useful: http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/apex/r31/apex31nf/apex31blob.htm#o
    plus the doclib application example.
    It's too late here and I won't write down the detail now. The above two give the answers anyway.

  • Toplink blob handling

    when we use a serailized mapping in toplink to write objects to database, Does toplink add any special headers/bits
    to the data written as a binary blob into the DB?
    When we migrate blob data from one DB to another DB external to Toplink, Toplink is unable
    to deserialize the data from the DB, we compared the data in both the original and the
    migrated DB, the blob data looks fine.
    Thanks

    No, TopLink does not do anything special, only normal Java serialization.
    What is the error? Do you have a different version of the class when you try to load it? Have you defined a serialVersionUID in your class?
    James : http://ww.eclipselink.org

  • How to handle blob data with java and mysql and hibernate

    Dear all,
    I am using java 1.6 and mysql 5.5 and hibernate 3.0 . Some time i use blob data type . Earlier my project's data base was oracle 10g but now i am converting it to Mysql and now i am facing problem to save and fetch blob data to mysql database . Can anybody give me the source code for blob handling with java+Mysql+Hibernate
    now my code is :--
    ==================================================
    *.hbm.xml :--
    <property name="image" column="IMAGE" type="com.shrisure.server.usertype.BinaryBlobType" insert="true" update="true" lazy="false"/>
    ===================================================
    *.java :--
    package com.shrisure.server.usertype;
    import java.io.OutputStream;
    import java.io.Serializable;
    import java.sql.Blob;
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Types;
    import javax.naming.InitialContext;
    import javax.sql.DataSource;
    import oracle.sql.BLOB;
    import org.hibernate.HibernateException;
    import org.hibernate.usertype.UserType;
    import org.jboss.resource.adapter.jdbc.WrappedConnection;
    import com.google.gwt.user.client.rpc.IsSerializable;
    public class BinaryBlobType implements UserType, java.io.Serializable, IsSerializable {
    private static final long serialVersionUID = 1111222233331231L;
    public int[] sqlTypes() {
    return new int[] { Types.BLOB };
    public Class returnedClass() {
    return byte[].class;
    public boolean equals(Object x, Object y) {
    return (x == y) || (x != null && y != null && java.util.Arrays.equals((byte[]) x, (byte[]) y));
    public void nullSafeSet(PreparedStatement st, Object value, int index) throws HibernateException, SQLException {
    BLOB tempBlob = null;
    WrappedConnection wc = null;
    try {
    if (value != null) {
    Connection oracleConnection = st.getConnection();
    if (oracleConnection instanceof oracle.jdbc.driver.OracleConnection) {
    tempBlob = BLOB.createTemporary(oracleConnection, true, BLOB.DURATION_SESSION);
    if (oracleConnection instanceof org.jboss.resource.adapter.jdbc.WrappedConnection) {
    InitialContext ctx = new InitialContext();
    DataSource dataSource = (DataSource) ctx.lookup("java:/DefaultDS");
    Connection dsConn = dataSource.getConnection();
    wc = (WrappedConnection) dsConn;
    // with getUnderlying connection method , cast it to Oracle
    // Connection
    oracleConnection = wc.getUnderlyingConnection();
    tempBlob = BLOB.createTemporary(oracleConnection, true, BLOB.DURATION_SESSION);
    tempBlob.open(BLOB.MODE_READWRITE);
    OutputStream tempBlobWriter = tempBlob.getBinaryOutputStream();// setBinaryStream(1);
    tempBlobWriter.write((byte[]) value);
    tempBlobWriter.flush();
    tempBlobWriter.close();
    tempBlob.close();
    st.setBlob(index, tempBlob);
    } else {
    st.setBlob(index, BLOB.empty_lob());
    } catch (Exception exp) {
    if (tempBlob != null) {
    tempBlob.freeTemporary();
    exp.printStackTrace();
    st.setBlob(index, BLOB.empty_lob());
    // throw new RuntimeException();
    } finally {
    if (wc != null) {
    wc.close();
    public Object nullSafeGet(ResultSet rs, String[] names, Object owner) throws HibernateException, SQLException {
    final Blob blob = rs.getBlob(names[0]);
    return blob != null ? blob.getBytes(1, (int) blob.length()) : null;
    public Object deepCopy(Object value) {
    if (value == null)
    return null;
    byte[] bytes = (byte[]) value;
    byte[] result = new byte[bytes.length];
    System.arraycopy(bytes, 0, result, 0, bytes.length);
    return result;
    public boolean isMutable() {
    return true;
    public Object assemble(Serializable arg0, Object arg1) throws HibernateException {
    return assemble(arg0, arg1);
    public Serializable disassemble(Object arg0) throws HibernateException {
    return disassemble(arg0);
    public int hashCode(Object arg0) throws HibernateException {
    return hashCode();
    public Object replace(Object arg0, Object arg1, Object arg2) throws HibernateException {
    return replace(arg0, arg1, arg2);
    =================================================================
    can anyone give me the source code for this BinaryBlobType.java according to mysql blob handling ..

    Moderator action: crosspost deleted.

  • ClassCastException w/ BLOB

    We are currently using v 2.5.2 and have run into a problem when attempting
    to insert a BLOB using WebLogic (via EJB). When I run a stand-alone test
    case, everything works as planned. The BLOB is inserted with no problems.
    However, if I change the test case to call an EJB deployed on WebLogic
    8.1 (which in turn calls the same functionality to insert the BLOB via
    KODO), a receive the following exception:
    NestedThrowablesStackTrace:
    java.lang.ClassCastException
    at
    com.solarmetric.kodo.impl.jdbc.ormapping.OracleBlobMapping.update(OracleBlobMapping.java:100)
    at
    com.solarmetric.kodo.impl.jdbc.ormapping.OracleBlobMapping.insert(OracleBlobMapping.java:73)
    at
    com.solarmetric.kodo.impl.jdbc.ormapping.ClassMapping.insert(ClassMapping.java:437)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.flush(JDBCStoreManager.java:530)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.flushInternal(PersistenceManagerImpl.java:697)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.commit(PersistenceManagerImpl.java:422)
    at
    com.iits.sdb.app.facade.MaintainProducerRequestFacade.addProducerRequest(MaintainProducerRequestFacade.java:99)
    at
    com.iits.sdb.app.delegate.MaintainProducerRequestDelegate.addProducerRequest(MaintainProducerRequestDelegate.java:89)
    at
    com.iits.ejb.RequestProcessBean.persistRequest(RequestProcessBean.java:333)
    at
    com.iits.ejb.RequestProcessBean.prepareAddInitialAppointment(RequestProcessBean.java:125)
    at
    com.iits.ejb.RequestProcessEjb_pfomyb_EOImpl.prepareAddInitialAppointment(RequestProcessEjb_pfomyb_EOImpl.java:150)
    at
    com.iits.ejb.RequestProcessEjb_pfomyb_EOImpl_WLSkel.invoke(Unknown Source)
    at
    weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:466)
    at
    weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerRef.java:108)
    at
    weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:409)
    at
    weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:353)
    at
    weblogic.security.service.SecurityManager.runAs(SecurityManager.java:144)
    at
    weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:404)
    at
    weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:30)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
    Any help would be greatly appreciated.

    Marc,
    After doing some additional investigation, the following link provides
    more insight into why the error occurred.
    http://e-docs.bea.com/wls/docs70/jdbc/thirdparty.html#1045809
    It seems like adding a conditional cast to weblogic's wrapper class,
    weblogic.jdbc.vendor.oracle.OracleThinBlob, would fix the issue in
    OracleBlobMapping. Is there a recommended way for us to add this
    functionality, to enable us to still use Kodo for BLOB's in WebLogic?
    Thanks,
    Josh
    Josh Zook wrote:
    After trying your suggestion below, I still run into the same issue (see
    stack trace below). However, after looking at the generated SQL, it
    appears that Kodo is trying to INSERT the blob, rather than use
    EMPTY_BLOB() and then SELECT FOR UPDATE. I don't think upgrading is 3.0
    is an option for us at this time. Please let me know if you can think of
    anything else.
    Thanks,
    Josh
    java.sql.SQLException: Data size bigger than max size for this type: 4036
    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
    at oracle.jdbc.ttc7.TTCItem.setArrayData(TTCItem.java:95)
    at
    oracle.jdbc.dbaccess.DBDataSetImpl.setBytesBindItem(DBDataSetImpl.java:2413)
    at
    oracle.jdbc.driver.OraclePreparedStatement.setItem(OraclePreparedStatement.java:1166)
    at
    oracle.jdbc.driver.OraclePreparedStatement.setBinaryStream(OraclePreparedStatement.java:2598)
    at
    weblogic.jdbc.wrapper.PreparedStatement.setBinaryStream(PreparedStatement.java:289)
    at
    com.iits.pulsar.jdo.OracleDictionary.blobToPreparedParameter(OracleDictionary.java:76)
    Marc Prud'hommeaux wrote:
    Josh-
    The problem is that the Oracle JDBC drivers require special handling for
    blobs over a certain size: they need to have Oracle-specific BLOB/CLOB
    classes. Unfortunately, when another DataSource wraps the oracle
    DataSource, there isn't much we can do.
    Kodo 3.0 has a better way of doing this that will probably work around
    your problem. If you don't want to upgrade to 3.0 RC 1, then you
    could try to subclass OracleDictionary with your own class that
    overrides AbstractDictionary.blobToPreparedParameter. I have read that
    some versions of the Oracle driver will handle a direct blob better if
    you call stmnt.setBinaryStream(index, new ByteArrayInputStram (bytes))
    the if you do stmnt.setObject(index, ob) (which is the default way we
    deal with this).
    Please let us know if you still have problems after trying this.
    In article <[email protected]>, Josh Zook wrote:
    Thanks for the help. Yes, we are using WebLogic datasource, so that is
    the root of the problem. My standalone test case was using Kodo intenal
    connection pooling. It looks like WebLogic datasource wraps the
    ResultSet
    and Blob in it's own classes (perhaps causing the cast exception?).
    I tried you advice and set isOracleJDBCDriver=false. I now get the
    exception listed below. Any suggestions would be appreciated.
    java.sql.SQLException: Data size bigger than max size for this type: 4009
    atoracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
    atoracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
    at oracle.jdbc.ttc7.TTCItem.setArrayData(TTCItem.java:95)
    at
    oracle.jdbc.dbaccess.DBDataSetImpl.setBytesBindItem(DBDataSetImpl.java:2413)
    at
    oracle.jdbc.driver.OraclePreparedStatement.setItem(OraclePreparedStatement.java:1166)
    at
    oracle.jdbc.driver.OraclePreparedStatement.setBytes(OraclePreparedStatement.java:2208)
    at
    oracle.jdbc.driver.OraclePreparedStatement.setObject(OraclePreparedStatement.java:3002)
    at
    oracle.jdbc.driver.OraclePreparedStatement.setObject(OraclePreparedStatement.java:3217)
    at
    weblogic.jdbc.wrapper.PreparedStatement.setObject(PreparedStatement.java:172)
    at
    com.solarmetric.kodo.impl.jdbc.schema.dict.AbstractDictionary.blobToPreparedParameter(AbstractDictionary.java:1110)
    at
    com.solarmetric.kodo.impl.jdbc.schema.dict.OracleDictionary.blobToPreparedParameter(OracleDictionary.java:203)
    at
    com.solarmetric.kodo.impl.jdbc.schema.dict.AbstractDictionary.toPreparedParameter(AbstractDictionary.java:840)
    at
    com.solarmetric.kodo.impl.jdbc.sql.SQLValue.applyParameter(SQLValue.java:129)
    at
    com.solarmetric.kodo.impl.jdbc.sql.SQLBuffer.setParameters(SQLBuffer.java:239)
    at
    com.solarmetric.kodo.impl.jdbc.sql.SQLBuffer.setParameters(SQLBuffer.java:222)
    at
    com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerImpl.prepareStatementInternal(SQLExecutionManagerImpl.java:753)
    at
    com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerImpl.executePreparedStatementNonBatch(SQLExecutionManagerImpl.java:445)
    at
    com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerImpl.executePreparedStatement(SQLExecutionManagerImpl.java:423)
    at
    com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerImpl.executeInternal(SQLExecutionManagerImpl.java:381)
    at
    com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerImpl.flush(SQLExecutionManagerImpl.java:255)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.flush(JDBCStoreManager.java:554)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.flushInternal(PersistenceManagerImpl.java:697)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.commit(PersistenceManagerImpl.java:422)
    at
    com.iits.sdb.app.facade.MaintainProducerRequestFacade.addProducerRequest(MaintainProducerRequestFacade.java:106)
    >>>
    >>>
    Marc Prud'hommeaux wrote:
    Josh-
    Are you using Kodo's own DataSource in the Weblogic environment, or are
    you using a DataSource bound into WebLogic's JNDI? If the latter, then
    it may be that our special blob handling for Oracle is having problems
    with WebLogic's DataSource.
    One thing you might try to do is set the DictionaryProperties to have
    "isOracleJDBCDriver=false", which should prevent Kodo from using it's
    special Oracle driver behavior.
    In article <[email protected]>, Josh Zook wrote:
    We are currently using v 2.5.2 and have run into a problem when
    attempting
    to insert a BLOB using WebLogic (via EJB). When I run a stand-alonetest
    case, everything works as planned. The BLOB is inserted with noproblems.
    However, if I change the test case to call an EJB deployed on
    WebLogic
    8.1 (which in turn calls the same functionality to insert the BLOB via
    KODO), a receive the following exception:
    NestedThrowablesStackTrace:
    java.lang.ClassCastException
    at
    com.solarmetric.kodo.impl.jdbc.ormapping.OracleBlobMapping.update(OracleBlobMapping.java:100)
    at
    com.solarmetric.kodo.impl.jdbc.ormapping.OracleBlobMapping.insert(OracleBlobMapping.java:73)
    at
    com.solarmetric.kodo.impl.jdbc.ormapping.ClassMapping.insert(ClassMapping.java:437)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.flush(JDBCStoreManager.java:530)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.flushInternal(PersistenceManagerImpl.java:697)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.commit(PersistenceManagerImpl.java:422)
    at
    com.iits.sdb.app.facade.MaintainProducerRequestFacade.addProducerRequest(MaintainProducerRequestFacade.java:99)
    at
    com.iits.sdb.app.delegate.MaintainProducerRequestDelegate.addProducerRequest(MaintainProducerRequestDelegate.java:89)
    at
    com.iits.ejb.RequestProcessBean.persistRequest(RequestProcessBean.java:333)
    at
    com.iits.ejb.RequestProcessBean.prepareAddInitialAppointment(RequestProcessBean.java:125)
    at
    com.iits.ejb.RequestProcessEjb_pfomyb_EOImpl.prepareAddInitialAppointment(RequestProcessEjb_pfomyb_EOImpl.java:150)
    at
    com.iits.ejb.RequestProcessEjb_pfomyb_EOImpl_WLSkel.invoke(UnknownSource)
    at
    weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:466)
    at
    weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerRef.java:108)
    at
    weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:409)
    at
    weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:353)
    at
    weblogic.security.service.SecurityManager.runAs(SecurityManager.java:144)
    at
    weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:404)
    at
    weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:30)
    atweblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
    Any help would be greatly appreciated.
    Marc Prud'hommeaux [email protected]
    SolarMetric Inc. http://www.solarmetric.com
    Marc Prud'hommeaux [email protected]
    SolarMetric Inc. http://www.solarmetric.com

  • Update ORDImage with in memory BLOB?

    According to the interMedia docs, one of your examples is:
    BEGIN
    INSERT INTO emp VALUES (
    'John Doe', 24000, 'Technical Writer', 123,
    ORDSYS.ORDImage(ORDSYS.ORDSource(empty_blob(), NULL,NULL,NULL,SYSDATE,1),
    NULL,NULL,NULL,NULL,NULL,NULL,NULL));
    -- select the newly inserted row for update
    SELECT photo INTO Image FROM emp
    WHERE ename = 'John Doe' for UPDATE;
    --BEGIN
    -- use the getContent method to get the LOB locator.
    -- populate the data with dbms lob calls or write an OCI program to
    -- fill in the image BLOB.
    --END;
    -- set property attributes for the image data
    Image.setProperties;
    UPDATE emp SET photo = Image WHERE ename = 'John Doe';
    -- continue processing
    END;
    However, the part I'm stuck on is the populate the data (using OCI or LOB packages). For a regular BLOB field (or interMedia text), I can use the procedure outlined below:
    sSQL = "SELECT blob FROM store WHERE id = " & ID
    Set oDS = setDS(sSQL)
    oDS.Edit
    Set oBLOB = oDS.Fields("blob").Value
    sRet = oBLOB.Write(oFile.Binary, sSize)
    oDS.Update
    I retrieve the blob field (which was inserted with empty_blob()) into a dynaset using OO4O, edit the current row and write the new blob with the file and size parameters (I get from the rest of my code). This does not work for a fieldtype of ORDImage (the write method is not available). Is there any sample code that will update the blob field with binary in-memory data as opposed to from an external file? Thanks,
    Kevin
    null

    The interMedia object method getContent() returns a blob. This can then be read and write using the BLOB interface.
    So in your example, your SQL would be
    sSQL = "SELECT s.image.getContent() FROM store s WHERE s.id = " & ID
    Then you could uses the fields.value method to get the blob handle.

  • Blobs and OCI8

    When creating a server which uses JDBC thick drivers to get
    blobs in and out of the DB, I have noticed the following:
    The OCI layer seems to be caching the entire blob in memory.
    This means that if I read in a 30 meg blob in JDBC, I suddenly
    have 30 meg in memory on my middle-tier. My middle tier
    application does the following in a connection it borrows from a
    connection pool:
    -) Gets the Blob handle
    -) Uses getBytes(l_position, l_size, l_buf) to get the bytes and
    simply prints them to an outputStream to the client
    -) Return connection to the pool
    OR
    -) Get the Blob handle
    -) Use getBinaryStream()
    -) Loop with read(l_buf) printing to the output stream
    -) Return connection to the pool
    The top way is slightly faster than the bottom (usually), but
    both have the following problems:
    1) Using the thin driver is painfully slow. It takes forever
    2) Using the thick driver is good performance, but causes a
    scalablity problem. While the blob is being read in, the ENTIRE
    blob data is being stored in memory on my middle tier. Even
    when the Blob is garbage collected, the ENTIRE blob is still in
    memory. The only way I have found to get rid of the extra
    memory is to actually close the connection, which kills
    performance for other reasons.
    Is there some way to use the thick driver Blob class and NOT
    have it store the memory on my middle tier? Or is there someway
    to clear this memory without actually closing the connection????
    This is all done with Oracle8i and JDBC.
    Thanks,
    Kevin
    null

    : Is there some way to use the thick driver Blob class and NOT
    : have it store the memory on my middle tier? Or is there
    someway
    : to clear this memory without actually closing the
    connection????
    : This is all done with Oracle8i and JDBC.
    : Thanks,
    : Kevin
    Have you tryed it with oci8 jdbc drivers?
    I'm working with oci8 drivers, getting the pointers to the
    blobs ( getblob() ) and then reading/writing them with PL/SQL
    calls.
    null

  • Oc4j 9.0.2.0.0 and  8.1.7 client

    I need to use the latest production version of oc4j -> 9.0.2.0.0. My client needs use to be able to use the oci drivers with the 8.1.7 client install. Is it possible to use 9.0.2.0.0 with the 8.1.7 client install?
    I can use the thin driver no problem, but the application requires the speed and extras that oci proviceds, especially with blob handling.
    I can use the oci drivers on a machine with the 9i client installed, no problem.
    But when I use it on a machine with the 8.1.7 client installed, I get (of course) and unsatisfied link error - it can't find ocijdbc9.
    error:
    java.lang.UnsatisfiedLinkError: no ocijdbc9 in java.library.path
         at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1312)
         at java.lang.Runtime.loadLibrary0(Runtime.java:749)
         at java.lang.System.loadLibrary(System.java:820)
         at oracle.jdbc.oci8.OCIDBAccess.logon(OCIDBAccess.java:294)
         at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:287)
         at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:442)
         at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:321)
         at java.sql.DriverManager.getConnection(DriverManager.java:517)
         at java.sql.DriverManager.getConnection(DriverManager.java:177)
         at com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].sql.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:219)
         at com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].sql.DriverManagerConnectionPoolDataSource.getPooledConnection(DriverManagerConnectionPoolDataSource.java:24)
         at com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].sql.OrionPooledDataSource.getPooledConnection(OrionPooledDataSource.java:290)
         at com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].sql.PooledConnectionUsage.getPooledConnection(PooledConnectionUsage.java:21)
         at com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].sql.OrionPooledDataSource.getConnection(OrionPooledDataSource.java:162)
         at com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].sql.DriverManagerXADataSource.getAutoCommitConnection(DriverManagerXADataSource.java:248)
         at com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].sql.LogicalDriverManagerXAConnection.intercept(LogicalDriverManagerXAConnection.java:113)
         at com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].sql.FilterConnection.prepareStatement(FilterConnection.java:240)
         at com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].sql.FilterConnection.prepareStatement(FilterConnection.java:241)
         at com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].sql.OrclCMTConnection.prepareStatement(OrclCMTConnection.java:774)
         at gc.hc.pphb.webtos.util.WebtosUserManager.userExists(WebtosUserManager.java:152)
         at gc.hc.pphb.webtos.util.SimpleUserManager.getUser(SimpleUserManager.java:34)
         at com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].server.http.EvermindHttpServletRequest.getUserPrincipalInternal(EvermindHttpServletRequest.java:3117)
         at com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].server.http.HttpApplication.authenticate(HttpApplication.java:5470)
         at com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].server.http.HttpApplication.getRequestDispatcher(HttpApplication.java:2299)
         at com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:585)
         at com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].server.http.HttpRequestHandler.run(HttpRequestHandler.java:243)
         at com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].util.ThreadPoolThread.run(ThreadPoolThread.java:64)
    If I down load the 9i jdbc drivers and install them, I get a jvm message stating that a dependant library - oracore9.dll - is missing. I've tried changing my Oracle_home variable, adding the /lib directory to the class and replacing the \jdbc\classes12dms.jar with a remnamed version of classes12.zip (so I have an older version of OCIDBAccess.java that doesn't call the 9i jdbc libraries) but to no avail. The must be a way to get 9.0.2.0.0 to look for the correct version of the oci driver....
    Any help would be greatly appreciated...
    Mike

    Mike,
    The Oracle9iAS R2 Client CD on Windows is available. Please download the client software from http://otn.oracle.com/software/products/ias/htdocs/solsoft.html#client and this should have new version of OCI drivers. Please install this on a separate Oracle home and include this in your $ORACLE_HOME/bin in your path and then start OC4J and you should be in good shape.
    regards
    Debu

  • Anyone using Drupal 7 with Oracle 11g?

    I am currently with a group that fields PHP applications on top of Oracle 11g databases. We currently use OCI8 in a RHEL6/Apache environment for our homegrown PHP apps and sites. We are looking at using Drupal 7 to help stream-line our development process as well as make our web apps a bit more visually appealing. (engineers not artists here!).
    The problem we have run into is that it seems Drupal 7 does not see or recognize the OCI8 driver as valid for its install. It apparently wants us to use PDO_OCI which we have no experience with.
    Does anyone out there run a Drupal 7/Oracle 11g combo that could share their experiences and which driver they use? My googling of the subject has led me to believe the PDO driver may be inferior in some respects to OCI8 for BLOB handling. This is a concern as we do a lot of user upload file sharing as BLOBs stored in the database rather than as files on the OS.
    Thank you.

    Drupal needs PDO and won't work with native drivers like OCI8. Contact Andrea Gariboldi, the maintainer of the Oracle adapter for Drupal http://drupal.org/project/oracle. He maintains a number of customer sites running Drupal. He will be able to help you make a decision.
    The main PDO_OCI issues with LOBs are: (1) no CLOB support due to original creator being unsure how to handle CLOBs in a portable way across all databases (2) a crash doing multi-row fetches of BLOBs (potential patch in https://bugs.php.net/bug.php?id=57702)
    There are other issues with PDO_OCI including no connection pooling and no statement caching. It's a pity the community interest in PDO_OCI hasn't been greater and so no one is maintaining it. Even the core PDO layer isn't getting much attention - there was idle talk recently about moving PHP away from PDO.

  • How to create download procedure?

    I upload the zip file into the blob column, but I want to provide the url for the users to download the zipfile. I don't want to use intermedia and web agent. What should I do?

    Here's a code snippet that uses OO40 and VBScript to fetch a Blob and push it out the Response object. It uses the connection pooling capabilities of OO40, so I have included the connection pool creation call which should placed in your global.asa file under the Applicaiton_OnStart() routine.
    ==========================================
    <!-- global.asa file -->
    <!-- declare the OO4O automation object -->
    <OBJECT RUNAT=Server
    SCOPE=APPLICATION
    ID=OraSession
    PROGID="OracleInProcServer.XOraSession">
    </OBJECT>
    ' and type library
    'compsrv FILE="c:\orant\bin\oip8.tlb"
    <!--METADATA TYPE="TypeLib"
    FILE="d:\oracle\ora815\bin\oip8.tlb"
    -->
    <!-- put this in Application_OnStart() -->
    'create a connection pool
    OraSession.CreateDatabasePool nInitPoolSize, _
    nMaxPoolSize, _
    nSessionTimeout, _
    szImpbService, _
    szImpbUserPass, _
    0
    =========================================
    <!-- ASP application -->
    <%@ LANGUAGE=VBScript%>
    <%
    'Sub routine to fetch a blob from the database
    Sub ReadBlob(blob, size)
    Dim vBuffer
    'Set parameters for multi-piece read
    nLobChunk = CInt(Application("LOB_CHUNK")) * 1024
    blob.offset = 1
    blob.PollingAmount = CLng(size)
    'Read the first hunk and write to output
    vBuffer = null
    nBytesRead = blob.Read(vBuffer, nLobChunk)
    Response.BinaryWrite(vBuffer)
    'Read and write the rest
    While blob.Status = ORALOB_NEED_DATA
    vBuffer = null
    nBytesRead = blob.Read(vBuffer, nLobChunk)
    Response.BinaryWrite(vBuffer)
    Wend
    End Sub
    'Oracle related variables
    Dim ImDb
    Dim setItems
    'Get the input parameters
    szDomain = Request.QueryString("domain")
    szMediaId = Request.QueryString("id")
    'build the SQL string
    If szDomain = "i" Then
    szSQL = "select i.image_clip.getContent() blob, " & _
    "i.image_clip.getMimetype() mime, " & _
    "i.image_clip.getContentLength() clipSize " & _
    "from image_items i where i.image_id = " & szMediaId
    ElseIf szDomain = "a" Then
    szSQL = "select i.audio_clip.getContent() blob, " & _
    "i.audio_clip.getMimetype() mime, " & _
    "i.audio_clip.getContentLength() clipSize " & _
    "from audio_items i where i.audio_id = " & szMediaId
    ElseIf szDomain = "v" Then
    szSQL = "select i.video_clip.getContent() blob, " & _
    "i.video_clip.getMimetype() mime, " & _
    "i.video_clip.getContentLength() clipSize " & _
    "from video_items i where i.video_id = " & szMediaId
    Else
    Response.Write("Bad domain variable: " + szDomain)
    Response.End
    End If
    'Get a database connection
    Set ImDb = OraSession.GetDatabaseFromPool(2000)
    'fetch the blob handle
    nOptions = ORADYN_NOCACHE + ORADYN_READONLY
    Set setItems = ImDb.CreateDynaset(szSQL, nOptions)
    Response.ContentType = setItems("mime").Value
    'read the whole blob
    Call ReadBlob(setItems("blob").Value, setItems("clipSize").Value )
    %>
    null

  • Error : export from Architect to publisher

    Hello,
    During the installation of business publisher i choosed to use an OLite database,
    I try to export models from BPA Architect to BPA Business publisher but i get this error :
    java.io.IOException: Write Failure:[POL-3314] Veraltetes Blob-Handle wird benutz
    t
    at oracle.lite.poljdbc.POLJDBCErrMsg.throwIOException(Unknown Source)
    at oracle.lite.poljdbc.POLClobWriter.flushBuffer(Unknown Source)
    at oracle.lite.poljdbc.POLClobWriter.close(Unknown Source)
    at com.idsscheer.aris.businesspublisher.application.dao.attr.AOLiteDbAtt
    rDAO.writeClobValue(AOLiteDbAttrDAO.java:214)
    at com.idsscheer.aris.businesspublisher.application.dao.attr.AOLiteDbAtt
    rDAO.insertTextAttr(AOLiteDbAttrDAO.java:43)
    at com.idsscheer.aris.businesspublisher.application.dao.AOLiteBatchSimIn
    serter.addTextAttr(AOLiteBatchSimInserter.java:49)
    at com.idsscheer.aris.businesspublisher.application.dao.AOLiteBatchSimIn
    serter.add(AOLiteBatchSimInserter.java:32)
    at com.idsscheer.aris.businesspublisher.application.dao.util.ATableWrite
    r.addToBatch(ATableWriter.java:55)
    at com.idsscheer.aris.businesspublisher.application.dao.util.AAttrTableW
    riter.addToBatch(AAttrTableWriter.java:53)
    at com.idsscheer.aris.businesspublisher.application.dao.util.ATableWrite
    r.write(ATableWriter.java:51)
    at com.idsscheer.aris.businesspublisher.corba.idl.impl.ARecordInsertWrit
    erBase.writeRecord(ARecordInsertWriterBase.java:37)
    at com.idsscheer.aris.businesspublisher.corba.idl.impl.ABPExportNew.proc
    essRecords(ABPExportNew.java:126)
    at com.idsscheer.aris.businesspublisher.corba.idl.impl.ABPDataTransferIm
    pl.writeRecordsOfSameTableTypeNum(ABPDataTransferImpl.java:227)
    at com.idsscheer.aris.businesspublisher.corba.idl.impl.ABPDataTransferIm
    pl.writeChunk(ABPDataTransferImpl.java:163)
    at com.idsscheer.aris.businesspublisher.corba.idl.transfer.IBPDataTransf
    erPOA._OB_op_writeChunk(IBPDataTransferPOA.java:202)
    at com.idsscheer.aris.businesspublisher.corba.idl.transfer.IBPDataTransf
    erPOA._invoke(IBPDataTransferPOA.java:124)
    at com.ooc.OBPortableServer.ServantDispatcher.dispatch(Unknown Source)
    at com.ooc.OBPortableServer.POA_impl._OB_dispatch(Unknown Source)
    at com.ooc.OB.DispatchRequest_impl.invoke(Unknown Source)
    at com.ooc.OB.DispatchSameThread_impl.dispatch(Unknown Source)
    at com.ooc.OB.Upcall.invoke(Unknown Source)
    at com.ooc.OB.GIOPConnectionThreaded.execReceive(Unknown Source)
    at com.ooc.OB.GIOPConnectionThreaded$ReceiverThread.run(Unknown Source)
    IT_1256fa5ecc2_SEVERE 2009-12-08T18:56:02,754 Error - com.idsscheer.aris.busines
    spublisher.application.dao.attr.AOLiteDbAttrDAO.writeClobValue
    Version 7.1.0.403493
    com.idsscheer.aris.businesspublisher.application.dao.util.ADAOSystemException: c
    annot write CLOB data into character output string.
    at com.idsscheer.aris.businesspublisher.application.dao.attr.AOLiteDbAtt
    rDAO.writeClobValue(AOLiteDbAttrDAO.java:211)
    at com.idsscheer.aris.businesspublisher.application.dao.attr.AOLiteDbAtt
    rDAO.insertTextAttr(AOLiteDbAttrDAO.java:43)
    at com.idsscheer.aris.businesspublisher.application.dao.AOLiteBatchSimIn
    serter.addTextAttr(AOLiteBatchSimInserter.java:49)
    at com.idsscheer.aris.businesspublisher.application.dao.AOLiteBatchSimIn
    serter.add(AOLiteBatchSimInserter.java:32)
    at com.idsscheer.aris.businesspublisher.application.dao.util.ATableWrite
    r.addToBatch(ATableWriter.java:55)
    at com.idsscheer.aris.businesspublisher.application.dao.util.AAttrTableW
    riter.addToBatch(AAttrTableWriter.java:53)
    at com.idsscheer.aris.businesspublisher.application.dao.util.ATableWrite
    r.write(ATableWriter.java:51)
    at com.idsscheer.aris.businesspublisher.corba.idl.impl.ARecordInsertWrit
    erBase.writeRecord(ARecordInsertWriterBase.java:37)
    at com.idsscheer.aris.businesspublisher.corba.idl.impl.ABPExportNew.proc
    essRecords(ABPExportNew.java:126)
    at com.idsscheer.aris.businesspublisher.corba.idl.impl.ABPDataTransferIm
    pl.writeRecordsOfSameTableTypeNum(ABPDataTransferImpl.java:227)
    at com.idsscheer.aris.businesspublisher.corba.idl.impl.ABPDataTransferIm
    pl.writeChunk(ABPDataTransferImpl.java:163)
    at com.idsscheer.aris.businesspublisher.corba.idl.transfer.IBPDataTransf
    erPOA._OB_op_writeChunk(IBPDataTransferPOA.java:202)
    at com.idsscheer.aris.businesspublisher.corba.idl.transfer.IBPDataTransf
    erPOA._invoke(IBPDataTransferPOA.java:124)
    at com.ooc.OBPortableServer.ServantDispatcher.dispatch(Unknown Source)
    at com.ooc.OBPortableServer.POA_impl._OB_dispatch(Unknown Source)
    at com.ooc.OB.DispatchRequest_impl.invoke(Unknown Source)
    at com.ooc.OB.DispatchSameThread_impl.dispatch(Unknown Source)
    at com.ooc.OB.Upcall.invoke(Unknown Source)
    at com.ooc.OB.GIOPConnectionThreaded.execReceive(Unknown Source)
    at com.ooc.OB.GIOPConnectionThreaded$ReceiverThread.run(Unknown Source)
    Caused by: java.io.IOException: Write Failure:[POL-3314] Veraltetes Blob-Handle
    wird benutzt
    at oracle.lite.poljdbc.POLJDBCErrMsg.throwIOException(Unknown Source)
    at oracle.lite.poljdbc.POLClobWriter.flushBuffer(Unknown Source)
    at oracle.lite.poljdbc.POLClobWriter.flush(Unknown Source)
    at com.idsscheer.aris.businesspublisher.application.dao.attr.AOLiteDbAtt
    rDAO.writeClobValue(AOLiteDbAttrDAO.java:208)
    ... 19 more
    IT_1256fa5ecc2_SEVERE 2009-12-08T18:56:02,754 Error - Unknown.Unknown
    Version 7.1.0.403493
    test3: CreateExportException: IDL:transfer/CreateExportException:1.0 cannot proc
    ess records: cannot write CLOB data into character output string.
    IT_1256fa5ecc2_SEVERE 2009-12-08T18:56:02,754 Error - Unknown.Unknown
    Version 7.1.0.403493
    test3: CreateExportException: IDL:transfer/CreateExportException:1.0 cannot proc
    ess records: cannot write CLOB data into character output string.
    IT_1256fa5ecc2_SEVERE 2009-12-08T18:56:02,754 Error - Unknown.Unknown
    Version 7.1.0.403493
    test3: Rollback export triggered from external
    IT_1256fa5ecc2_SEVERE 2009-12-08T18:56:02,754 Error - Unknown.Unknown
    Version 7.1.0.403493
    test3: CreateExportException: ADAOException
    thanks

    The problem was with Oracle lite, we installed Oracle Database and reinstalled Publisher with support for oracle database and everything went right.

  • OO4O & C++ : COM or class library?

    Hi,
    What do you choose when using OO4O in C++? Do you use raw COM calls, or do you use the OO4O C++ library?
    I haven't seen much talks about the OO4O C++ library here, or anywhere else on the net.
    Thanks

    The C++ class library is certainly the easiest route to take. You should find the OO4O help file sufficent for reference purposes.
    I have not come across anything that you can do using the COM interface directly that you can not do using the C++ library (except blob handling way back in version 3.3.0.0.0)

  • Times Ten and PL/SQL XML Type

    How TT can support XML type PL/SQL or what is workaround...

    Gennady Sigalaev wrote:
    PL/SQL in TimesTen does not support large objects (LOBs), Internet data types (XMLType, URIType, HttpURIType), or "Any" data types (AnyType, AnyData, AnyDataSet).
    More information you can find in documentation (http://download.oracle.com/docs/cd/E13085_01/welcome.html)
    From Oracle's website: http://www.oracle.com/technetwork/database/timesten/documentation/1121-historic-183693.html
    "You can cache Oracle LOB data in TimesTen cache groups. Oracle CLOB data is cached as TimesTen VARCHAR2 data. Oracle BLOB data is cached as TimesTen VARBINARY data. Oracle NCLOB data is cached as TimesTen NVARCHAR2 data."
    However, the catch is the VARCHAR2 and VARBINARY in TT would appear to only handle 4 MB and Oracle CLOB and BLOB handles 4 GB. So it does support it but up to a certain point it would seem.
    Edited by: victor on Aug 24, 2011 12:36 PM

Maybe you are looking for

  • BOE XI R2 - Configuring RAS with Service user, RAS Fails to start...

    Colleagues: Where would kbase article c2018785 be found? I am configuring my BOE XI R2 to use End-to-End SSO via IIS using this document from Business Objects: Link: [https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/403cdf46-c63e-2

  • How to make some part of front panel transparent?

    There is a property node to make a front panel completly transparent...but is there anything that only makes some part of the vi transparent like if I define a decorative block in the vi which takes 1 quardant of front panel and I have a control to m

  • Infopackage:Determine the variables for periodic data loading

    Hi, we have an infopackage for full update and we have set in "Data selection" tab as selection , an OLAP variable. If I do the load using the  OLAP variable selection, 12 last months , I need to delete data can be duplicated. But for example, If I d

  • SmartForms: How to loop inside smartforms?

    Hi All, I have the following scenario below: kindly check the screenshot of my smartForm first: http://img10.imageshack.us/img10/9456/sflayout6cells.jpg In the screenshot, in the right side is the screenshot of my SAP output, while on the left is the

  • Using PM01 to enhance infotype 376 overview

    Hi all, I am using PM01 to enhance infotype 376. I need to enhance its overview. In the third tab in PM01, i use Enhance IT to modify 0376 overview to include a column in the table control. However nothing came out. May i know what is the right way t