Lob Assembly in stream

Oracle 11.0.1.7:
We are replicated blobs accross and it looks like by using lob_assembly in DML_HANDLER we can improve performance. So my question is:
1. Is this something recommended where Blobs are replicated
2. I already have one DML_HANDLER to ignore certain rows. Can I set lob_assembly to true in that DML_HANDLER even though that DML_HANDLER doesn't perform any operation on the Blob table?

You may want to check out the capability of oracle configurator module which is used quite extensively for assisting in custom configurations and options.
GR

Similar Messages

  • Streams

    I am trying to replicate 2 tables from 10gR2 to 11gR1 using streams. I am new to streams based replication and just started reading through the documentation to get this set up.I used the following web link
    http://www.oracle.com/technology/oramag/oracle/04-nov/o64streams.html
    to set up streams and it is "not working". I am still familiarising myself with troubleshooting this set up.
    The questions i have is
    1. Is the streams based replication supported between 10gR2 and 11gR1? My source tables are in 10gR2 and destination is 11gR2?

    Yes streams have been around since release 9
    and they support heterogeneous database release.
    However you will experience limitations with 10.1 release :
    - queue to queue propagation are not available
    - LOB assembly is not available
    - checkpoint retention time customization
    - buffered mesasging not available
    The get_compatible function of LCR may help you to filter the stream according to compatibility level (if necessary)

  • LOB support non-existant

    From the JDBC 8.1.6 driver readme:
    "1. There is a limitation regarding the use of stream input for LOB types. Stream input for LOB types can only be used for 8.1.6 JDBC OCI driver connecting to an 8.1.6 Oracle server. The use of stream input for LOB types in all other configurations may result in data corruption. PreparedStatement stream input APIs include:
    setBinaryStream(), setAsciiStream(), setUnicodeStream(),
    setCharacterStream() and setObject()."
    Since the 8.1.6 Oracle Server doesn't even EXIST yet as far as I'm concerned, this amounts to "we don't support or acknowledge the existance of LOBs". Come on Oracle, if you're going to market the heck out of something, at least have it working first. And when it doesn't work, FIX IT.
    What IS the story???

    Hi, Cybergig22, and welcome to the Community,
    Like many other websites, Skype handles many customer service requests via instant message chat with a representative.  As you work your way through the web-form choices offered, another common customer service platform, e-mail will be offered as an option if needed.
    Much of this historical account information is requested for verification purposes as a means to verify that you are the account "owner."
    Here is a link to the instruction on how to contact Skype Customer Service via their secure portal: Contact Customer Service
    Skype is aware of continuing problems with the website when contacting their customer service agents. If you experience difficulty reaching Skype Customer Service or find yourself redirected back to the Community, please try again using a different web browser and - important! -  choosing a different path through the various drop-down menu options presented. Also, look to approve a pop-up dialogue box which would connect you to start an instant message chat with a customer service agent. If you have pop-ups blocked in your browser settings, this will also block reaching an agent.
    Regards,
    Elaine
    Was your question answered? Please click on the Accept as a Solution link so everyone can quickly find what works! Like a post or want to say, "Thank You" - ?? Click on the Kudos button!
    Trustworthy information: Brian Krebs: 3 Basic Rules for Online Safety and Consumer Reports: Guide to Internet Security Online Safety Tip: Change your passwords often!

  • LOB in subset rules?

    Is there any way to add subset of a table with LOB column to streams with add_subset_propagation_rules ? I saw in oracle docs that you cannot use tables with LOB columns in add_subset_propagation_rules AND add_subset_rules procedures.Why? There should be some alternative (and easy) way to do it, any ideas? It makes many problems for me now!!! :(
    Edited by: p2 on Jun 1, 2009 4:14 AM

    Sorry, the was another rule not associated with the subset that evaluated to TRUE. I deleted this rule and it corrected the problem.

  • Oracle 9i +Java: Change string encoding from UTF-16 to Windows-1251

    Dear colleagues,
    I have a very urgent case: need to change encoding of the string retrieved from the file (with encoding UTF-16) to Windows-1251 and put it to db table, to CLOB field.
    Code of the Java function
    +public static void file2table(String sql, String fileName, String characterSet, int asByteArray) throws SQLException, IOException {+
    Connection con = null;
    Writer writer = null;
    Reader reader = null;
    +try {+
    con = getConnection();
    PreparedStatement ps=con.prepareStatement(sql);
    reader = new InputStreamReader(new BufferedInputStream(new FileInputStream(new File(fileName))), characterSet);
    BufferedReader br = new BufferedReader(reader);
    String s;
    +while ((s = br.readLine()) != null) {+
    byte[] defaultBytes=s.getBytes(characterSet);
    String win1251str=new String(defaultBytes, "windows-1251");
    +if(asByteArray>0) {+
    ps.setBytes(1, defaultBytes);
    +//ps.setBytes(1, win1251str.getBytes("windows-1251"));+
    +} else {+
    ps.setString(1, s);
    +}+
    ps.executeUpdate();
    +}+
    con.commit();
    +} finally {+
    +if (reader != null) {reader.close();}+
    +if (con != null) {con.close();}+
    +}+
    +}+
    I was check, all bytes from the file received correctly. But if I put readed bytes to database table, result text in table is broken.

    >
    Yes, currently I already have filled table with all file lines in result table but with incorrect encoding
    >
    No you haven't - not using the code you posted. You can't save LOB data using only the BLOB or CLOB.
    That isn't data that you strored - it is garbage that is being stored as the LOB locator.
    I ask you why you were trying to store the data that way instead of the way the doc shows you and you said
    >
    Because var. s is type of Java String.
    For method setClob must be use type of CLOB
    >
    You are teriibly confused about LOBs. A BLOB or CLOB Java datatype is the LOB LOCATOR and doesn't contain any data.
    Yes - it is true that method setClob must be of type CLOB but that CLOB instance HAS TO BE THE LOB LOCATOR - not the data.
    You access LOB data using streams. To store LOB data you have to RETRIEVE (not send) a LOB locator from the database and then use the locator's stream to send the actual data.
    So if you are creating a new record in the table you typically do an INSERT that includes an EMPTY_LOB() and have the newly created LOB locator returned to you. Then you use that locators stream to send the actual data.
    Since you are not doing that your approach will not work.
    Here is a link to the 9i JDBC Dev Guide
    http://docs.oracle.com/cd/B10501_01/java.920/a96654.pdf
    See page 8-2 to start with
    >
    BLOB and CLOB data is
    accessed and referenced by using a locator, which is stored in the database table and
    points to the BLOB or CLOB data, which is outside the table.
    To work with LOB data, you must first obtain a LOB locator. Then you can read or
    write LOB data and perform data manipulation. The following sections also
    describe how to create and populate a LOB column in a table.
    The oracle.sql.BLOB and CLOB classes implement the java.sql.Blob and
    Clob interfaces, respectively (oracle.jdbc2.Blob and Clob interfaces under
    JDK 1.1.x). By contrast, BFILE is an Oracle extension, without a corresponding
    java.sql (or oracle.jdbc2) interface.
    Instances of these classes contain only the locators for these datatypes, not the data.
    After accessing the locators, you must perform some additional steps to access the
    data. These steps are described in "Reading and Writing BLOB and CLOB Data" on
    page 8-6 and "Reading BFILE Data" on page 8-22.
    Note: You cannot construct BLOB, CLOB, or BFILE objects in your
    JDBC application—you can only retrieve existing BLOBs, CLOBs,
    or BFILEs from the database or create them using the
    createTemporary() and empty_lob() methods.
    >
    Read the above quotes several times until you understand what they are telling you. These are the two main concepts you need to accept:
    >
    To work with LOB data, you must first obtain a LOB locator.
    You cannot construct BLOB, CLOB, or BFILE objects in your JDBC application
    >
    See the example code and description starting on page 8-11 for how to populate a LOB column in a table
    >
    Create a BLOB or CLOB column in a table with the SQL CREATE TABLE statement,
    then populate the LOB. This includes creating the LOB entry in the table, obtaining
    the LOB locator, creating a file handler for the data (if you are reading the data from
    a file), and then copying the data into the LOB.
    >
    Until you start using the proper methodology you are just wasting you time and will not be successful.

  • Java concurrency and inputstream

    HI,
    I want to write the image file from a database to disk by using a queue. I can write these images on disk from the result set.
    Can someone tell me where I am wrong in the following code? I get: "trying to write to disk: Closed Connection"
    Thank you.
    {code}
    public class ExtractPicture implements Runnable{
        private BlockingQueue<InputStreamMessage> queue;
        public ExtractPicture(BlockingQueue<InputStreamMessage> queue){
            this.queue = queue;
        @Override
        public void run() {
            try(Connection conn = new DatabaseConnection().getConnection();
                Statement stmt = conn.createStatement();
                ResultSet rs = stmt.executeQuery("select mypicture from testpicture")){           
                while(rs.next()){
    //                System.out.println(rs.getInt("mypicture") + " <== added");
    //                queue.put(rs.getInt("id"));
                    InputStreamMessage ism = new InputStreamMessage(rs.getBinaryStream("mypicture"));
                    try{
                        queue.put(ism);
                    }catch(Exception e){
                        System.out.println(e.getMessage());
            }catch(Exception e){
                System.out.println(e.getMessage());
    class Consumer implements Runnable{
        private BlockingQueue<InputStreamMessage> queue;
        public Consumer(BlockingQueue<InputStreamMessage> queue){
            this.queue = queue;
        @Override
        public void run() {
            try{           
                int z = 0;
                InputStreamMessage is;
    //            (is = queue.take()) != null
                while((is = queue.take()) != null){
                    System.out.println("consumer aa" + is.getInputStream());
    //                writeToDisk(is.getInputStream(), "c:\\temp\\p" + z + ".jpeg");
                    try{
                        int c = 0;
                        OutputStream f = new FileOutputStream(new File("c:\\temp\\p" + z + ".jpeg"));
                        while((c = is.getInputStream().read()) > -1 ){
                            f.write(c);
                        f.close();
                    }catch(Exception exce){
                        System.out.println("trying to write to disk: " + exce.getMessage());
                    z++;
            }catch(Exception e){
                System.out.println(e.getMessage());
    class InputStreamMessage{
        private InputStream is;
        public InputStreamMessage(InputStream is){
            this.is = is;
        public InputStream getInputStream(){
            return is;
    class RunService{
         public static void main(String[] args) {
            BlockingQueue<InputStreamMessage> queue = new ArrayBlockingQueue(10);
            ExtractPicture ep = new ExtractPicture(queue);
            Consumer c = new Consumer(queue);
            new Thread(ep).start();
            new Thread(c).start();
    {code}

    This is really a JDBC issue: Java Database Connectivity (JDBC)
    Your code is getting a 'STREAM' from the result set and putting a reference to that stream in a queue.
    But then the code executes 'rs.next()' which closes the stream and attempts to move to the next row, if any, of the result set.
    Stream data MUST BE read immediately. Any attempt to access columns after the column being streamed or moving to another rows will close the streamj.
    See the JDBC Dev Guide for the details of processing LOBs and using streams.
    http://docs.oracle.com/cd/B28359_01/java.111/b31224/jstreams.htm#i1014109
    Data Streaming and Multiple Columns
    If a query fetches multiple columns and one of the columns contains a data stream, then the contents of the columns following the stream column are not available until the stream has been read, and the stream column is no longer available once any following column is read. Any attempt to read a column beyond a streaming column closes the streaming column.
    Also see the precautions about using streams:
    http://docs.oracle.com/cd/B28359_01/java.111/b31224/jstreams.htm#i1021779
      Use the stream data after you access it. 
    To recover the data from a column containing a data stream, it is not enough to fetch the column. You must immediately process the contents of the column. Otherwise, the contents will be discarded when you fetch the next column.
    It is important that the process consuming the stream has COMPLETE control over the components needed to process it properly. That includes the connection, statement and result set.
    As TPD pointed out by defining the connection, statement and result set within a method those instances goe OUT OF SCOPE when the method ends.
    Since you also defined the objects within a try block they go out of scope when the block exits even if the method doesn't end.
    You didn't say why you are trying to use queues to do this but I assume it is part of some multi-threaded application. If so you have some additional architectural considerations in terms of keeping things modular while still being able to share certain components.
    For example how are you connections being handled? Are you using a connection pool? That 'queue' processsor need sole access to the connection being used to stream an object. Your code ONLY puts a reference to a stream on the queue but then has to WAIT until the stream has been FULLY READ before that code can try to read the next column, next row or close the result set.
    That makes those two processes mutually dependent and you aren't taking that dependency into account.
    Hopefully you are doing the dev and testing using TINY files until things are working properly?.

  • Saving files as BLOB into oracle database

    I have files to insert into the oracle database as a BLOB field. Please give me some code to display and store the files into the database.
    Cheers..,
    aruni.

    Is your suggested approach limited by Oracle's 4k limit? No it isnt limited to 4k ...Somehow that 4k chunk is stuck in the back of my mind as a limit... Anyway, I recalled some one posted a question regarding Oracle's BLOB/CLOB and was having difficulty either reading or writing so I've decided to poke around a little and this is what I came up with:
    1) Oracle's maximum size of a BLOB/CLOB is said to be 4gb -- but I failed to see how that can be accomplished thru Java since the setBinaryStream and setAsciiStream methods require a signed int as a length specification.
    2) In reading a LOB, the input stream has an internal MAX_CHUNK_SIZE set to 32768, in order to read anything bigger, it must be done in multiple chunks.
    ;o)
    V.V.

  • Problem with inserting a chart into Powerpoint

    A box appears telling me that I must first close open dialog boxes but I have none open.  Next box says some charts cannot be combined with others and to choose a new chart type.   I have not selected another chart.  I have made plenty of charts in the past and never struck this before.

    Where can you find the defect number and description?
    Does it solve this issue in the release notes for 10.1.0.2.0 (10g)?
    * There is a limitation regarding the use of stream input for LOB
    types. Stream input for LOB types can only be used for 8.1.7 or
    later JDBC OCI driver connecting to an 8.1.7 or later Oracle
    server. The use of stream input for LOB types in all other
    configurations may result in data corruption. PreparedStatement
    stream input APIs include: setBinaryStream(), setAsciiStream(),
    setUnicodeStream(), setCharacterStream() and setObject().

  • JDBC Drviers and Linux

    What driver should I use for O8.1.6 using RedHat 6.2 Linux
    Thanks
    P.S. Please respond to [email protected]

    the jdbc driver readme file:
    Oracle JDBC Drivers release 8.1.7 README
    ========================================
    What Is New In This Release?
    These are the major new features/enhancements in this release:
    - Statement Caching
    * Implicit Statement Caching
    * Explicit Statement Caching
    - Full XA Support
    * Including XA Recover and Forget
    * OracleXid independent implementation for 8.1.7 servers and above
    - Connection Caching
    * New Scheme (FIXED_WAIT_SCHEME)
    * Statement Caching coupling
    - PLSQL Tables Support for Scalar types (for OCI driver only)
    - User-Defined Datatypes Performance Enhancement
    - Object Types Extensions
    * Serializable Type Descriptors
    * Accessing collection elements in Java primitive types
    * Buffering and indexing collection elements
    * Creating empty Lobs
    - Support for 56-bit encryption algorithms for connection using
    the Thin JDBC driver.
    These are the major bug fixes:
    - BUG-903011
    The JDBC Thin driver could not be used with usernames that
    contained Latin-1 characters when the server used UTF8 character
    set. This problem has been fixed in release 8.1.7.
    - BUG-1052489
    There was a problem with PreparedStatements being executed
    multiple times and the length of one of the bind variables (bound
    with setBinaryStream or setCharacterStream) increased. This
    problem has been fixed in release 8.1.7.
    - BUG-1069768
    There was a problem with insertion of ADTs with an image bigger
    than 4K with the JDBC Thin driver. This problem has been fixed
    in release 8.1.7.
    - BUG-1247015
    When using ResultSet::getObject() to access CHAR or VARCHAR columns
    in scrollable result sets, ResultSet::getObject() returned null.
    - BUG-1349713
    getString() of scrollable result sets returns incorrect values if
    the column data contains multibyte characters.
    Driver Versions
    These are the driver versions in the 8.1.7 release:
    - JDBC OCI Driver 8.1.7
    Client-side JDBC for use on a machine where OCI 8.1.7 is installed.
    - JDBC Thin Driver 8.1.7
    100% Java client-side JDBC for use in applets and applications.
    - JDBC Thin Server-side Driver 8.1.7
    JDBC for use by Java Stored Procedures or by Java CORBA objects
    running in Oracle 8.1.7. This driver is typically used in a middle
    tier server.
    - JDBC Server-side Internal Driver 8.1.7
    Server-side JDBC for use by Java Stored procedures or by Java CORBA
    objects running in Oracle 8.1.7. This driver used to be called the
    "JDBC Kprb Driver".
    For complete documentation, please refer to "JDBC Developer's Guide
    and Reference".
    Contents Of This Release
    The [ORACLE_HOME]/jdbc/lib directory contains:
    - classes111.zip
    Classes for use with JDK 1.1.x. It contains the JDBC driver
    classes except classes necessary for NLS support in Object and
    Collection types.
    - nls_charset11.zip
    NLS classes for use with JDK 1.1.x. It contains classes necessary
    for NLS support in Object and Collection types.
    - classes111_g.zip
    Same as classes111.zip, except that classes were compiled with
    "javac -g".
    - classes12.zip
    Classes for use with JDK 1.2.x. It contains the JDBC driver
    classes except classes necessary for NLS support in Object and
    Collection types.
    - nls_charset12.zip
    NLS classes for use with JDK 1.2.x. It contains classes necessary
    for NLS support in Object and Collection types.
    - classes12_g.zip
    Same as classes12.zip, except that classes were compiled with
    "javac -g".
    Note that the packaging of the JDBC classes to support NLS was
    changed in 8i. The classes pertaining to specific character sets
    support in Object and Collection types have been separated from the
    basic zip files. These NLS classes are now packaged into the
    extension zip files. This allows the user to include the NLS
    classes only if necessary. Please refer to the "NLS Extension Zip
    Files (for client-side only)" for further details.
    [ORACLE_HOME]/lib directory contains libocijdbc8.so and
    libocijdbc8_g.so (on Solaris), which are the shared libraries used by
    the JDBC OCI driver.
    [ORACLE_HOME]/jdbc/doc/javadoc.tar contains the JDBC Javadoc. This
    release contains a beta release of the Javadoc files for the public
    API of the public classes of Oracle JDBC.
    [ORACLE_HOME]/jdbc/demo/demo.tar contains sample JDBC programs.
    Demo programs written for JDK 1.1 must be modified to run in JDK 1.2.
    Please refer to the "Support For JDK 1.2" for porting details.
    NLS Extension Zip Files (for client-side only)
    The JDBC Server-side Internal Driver provides complete NLS support.
    It does not require any NLS extension zip files, nls_charset*.zip.
    Discussions in this section do not apply to the JDBC Server-side
    Internal Driver. You can skip this section if you only use the
    Server-side Internal Driver.
    The basic zip files, classes111.zip and classes12.zip, contain all the
    necessary classes to provide complete NLS support for:
    - Oracle Character sets for CHAR/VARCHAR/LONGVARCHAR/CLOB type data
    that is not retrieved or inserted as a data member of an Oracle 8
    Object or Collection type.
    - NLS support for CHAR/VARCHAR data members of Objects and
    Collections for a few commonly used character sets. These
    character sets are: US7ASCII, WE8DEC, WE8ISO8859P1 and UTF8.
    Users must include the appropriate extension zip in their CLASSPATH
    if utilization of other character sets in CHAR/VARCHAR data members
    of Objects/Collections is desired. It is important to note that
    extension zip files are large in size due to the requirement of
    supporting a large number of character sets. Users may choose to
    include only the necessary classes from the extension zip file.
    To do so, users can first unzip the extension zip file, and then put
    only the necessary classes in the CLASSPATH. The character set
    extension class files are named in the following format:
    CharacterConverter<OracleCharacterSetId>.class
    where <OracleCharacterSetId> is the hexidecimal representation of the
    Oracle character set id of the corresponding character set.
    Installation
    Please do not try to put multiple versions of the Oracle JDBC drivers
    in your CLASSPATH. The Oracle installer installs the JDBC Drivers in
    the [ORACLE_HOME]/jdbc directory.
    Setting Up Your Environment
    On Win95/Win98/NT:
    - Add [ORACLE_HOME]\jdbc\lib\classes111.zip and
    [ORACLE_HOME]\jdbc\lib\nls_charset11.zip to your CLASSPATH.
    (Add classes12.zip and nls_charset12.zip if JDK 1.2.x is used.)
    - Add [ORACLE_HOME]\jdbc\lib to your PATH.
    On Solaris/Digital Unix:
    - Add [ORACLE_HOME]/jdbc/lib/classes111.zip and
    [ORACLE_HOME]/jdbc/lib/nls_charset11.zip to your CLASSPATH.
    (Add classes12.zip and nls_charset12.zip if JDK 1.2.x is used.)
    - Add [ORACLE_HOME]/jdbc/lib to your LD_LIBRARY_PATH.
    On HP/UX:
    - Add [ORACLE_HOME]/jdbc/lib/classes111.zip and
    [ORACLE_HOME]/jdbc/lib/nls_charset11.zip to your CLASSPATH.
    (Add classes12.zip and nls_charset12.zip if JDK 1.2.x is used.)
    - Add [ORACLE_HOME]/jdbc/lib to your SHLIB_PATH and LD_LIBRARY_PATH.
    On AIX:
    - Add [ORACLE_HOME]/jdbc/lib/classes111.zip and
    [ORACLE_HOME]/jdbc/lib/nls_charset11.zip to your CLASSPATH.
    (Add classes12.zip and nls_charset12.zip if JDK 1.2.x is used.)
    - Add [ORACLE_HOME]/jdbc/lib to your LIBPATH and LD_LIBRARY_PATH.
    Some Useful Hints In Using the JDBC Drivers
    Please refer to "JDBC Developer's Guide and Reference" for details
    regarding usage of Oracle's JDBC Drivers. This section only offers
    useful hints. These hints are not meant to be exhaustive.
    These are a few simple things that you should do in your JDBC program:
    1. Import the necessary JDBC classes in your programs that use JDBC.
    For example:
    import java.sql.*;
    import java.math.*;
    2. Register the Oracle driver before before calling other JDBC APIs.
    (This is not needed if you are using the JDBC Server-side Internal
    Driver because registration is done automatically in the server.)
    To register the Oracle driver, make sure the following statement
    is executed at least once in your Java session:
    DriverManager.registerDriver(
    new oracle.jdbc.driver.OracleDriver());
    3. Open a connection to the database with the getConnection call.
    Different connection URLs should be used for different JDBC
    drivers. The following examples demonstrate the different URLs.
    For the JDBC OCI8 Driver:
    Connection conn = DriverManager.getConnection(
    "jdbc:oracle:oci8:@<database>",
    "scott", "tiger");
    where <database> is either an entry in tnsnames.ora or a SQL*net
    name-value pair.
    For the JDBC Thin Driver, or Server-side Thin Driver:
    Connection conn = DriverManager.getConnection(
    "jdbc:oracle:thin:@<database>",
    "scott", "tiger");
    where <database> is either a string of the form
    <host>:<port>:<sid> or a SQL*net name-value pair.
    For the JDBC Server-side Internal Driver:
    Connection conn = DriverManager.getConnection(
    "jdbc:oracle:kprb:");
    Note that the trailing ':' character is necessary. When you use
    the Server-side Internal Driver, you always connect to the
    database you are executing in. You can also do this:
    Connection conn
    = new oracle.jdbc.driver.OracleDriver().defaultConnection();
    Java Stored Procedures
    Please note that examples for callins and instance methods using Oracle
    8 Object Types are provided in:
    [ORACLE_HOME]/javavm/demo/demo.zip
    Once unzipped, the directory containing the examples is:
    [ORACLE_HOME]/javavm/demo/examples/jsp
    Known Problems/Limitations In This Release
    The following is a list of known problems/limitations:
    1. There is a limitation regarding the use of stream input for LOB
    types. Stream input for LOB types can only be used for 8.1.7
    JDBC OCI driver connecting to an 8.1.7 Oracle server. The use of
    stream input for LOB types in all other configurations may result
    in data corruption. PreparedStatement stream input APIs include:
    setBinaryStream(), setAsciiStream(), setUnicodeStream(),
    setCharacterStream() and setObject().
    2. BUG-1018797
    Extra characters may be appended to the end of a CLOB value
    mistakenly under the following conditions:
    - setCharacterStream() is used to insert a CLOB value, and
    - The Oracle server uses multi-byte character set.
    (See 1 for limitation of stream input for LOB type.)
    3. Programs can fail to open 16 or more connections using our
    client-side drivers at any one time. This is not a limitation
    caused by the JDBC drivers. It is most likely that the limit of
    per-process file descriptors is exceeded. The solution is to
    increase the limit.
    4. The Server-side Internal Driver has the following limitation:
    - Data access for LONG and LONG RAW types is limited to 32K of
    data.
    - Inserts of Object Types (Oracle 8 Objects, Collections and
    References) will not work when the database compatibility mode
    is set to 8.0. This limitation does not apply when the
    compatibility mode is set to 8.1.
    - Statement.cancel() is not implemented.
    - In a chain of SQLExceptions, only the first one in the chain
    will have a getSQLState value.
    5. The JDBC OCI driver on an SSL connection hangs when the Java
    Virtual Machine is running in green threads mode. A work-around
    is to run the Java Virtual Machine in native threads mode.
    6. Date-time format, currency symbol and decimal symbols are always
    presented in American convention.
    7. When using OracleStatement.defineColumnType(), it is not necessary
    to define the column type to be the same as the column type
    declared in the database. If the types are different, the
    retrieved values are converted to the type specified in
    defineColumnType.
    Note: Most reasonable conversions work, but not all. If you find
    a conversion that you think is reasonable, but that does not wo rk,
    please submit a TAR to Oracle Support.
    8. The utility dbms_java.set_output or dbms_java.set_stream that is
    used for redirecting the System.out.println() in JSPs to stdout
    SHOULD NOT be used when JDBC tracing is turned on. This is
    because the current implementation of dbms_java.set_output and
    set_stream uses JDBC to write the output to stdout. The result
    would be an infinite loop.
    9. The JDBC OCI and Thin drivers do not read CHAR data via binary
    streams correctly. In other word, using getBinaryStream() to
    retrieve CHAR data may yield incorrect results. A work-around is
    to use either getCHAR() or getAsciiStream() instead. The other
    alternative is to use getUnicodeStream() although the method is
    deprecated.
    10. BUG-899078 (since 8.1.6 SDK):
    The JDBC Server-side Internal driver has extra space padding with
    PL/SQL CHAR OUT (2 to 3 space depending on character set).
    Problem occurs in most of the multibyte database character set
    except UTF8.
    11. There is a limitation for Triggers implemented in Java and Object
    Types. It only affects the IN argument types of triggers
    implemented using Java on the client-side. The restriction does
    not apply to JDBC programs running inside the server. Triggers
    implemented as Java methods cannot have IN arguments of Oracle 8
    Object or Collection type. This means the Java methods used to
    implement triggers cannot have arguments of the following types:
    - java.sql.Struct
    - java.sql.Array
    - oracle.sql.STRUCT
    - oracle.sql.ARRAY
    - oracle.jdbc2.Struct
    - oracle.jdbc2.Array
    - any class implementing oracle.jdbc2.SQLData or
    oracle.sql.CustomDatum
    12. The scrollable result set implementation has the following
    limitation:
    - setFetchDirection() on ScrollableResultSet is not supported.
    - refreshRow() on ScrollableResultSet does not support all
    combinations of sensitivity and concurrency. The following
    table depicts the supported combinations.
    Support Type Concurrency
    no TYPE_FORWARD_ONLY CONCUR_READ_ONLY
    no TYPE_FORWARD_ONLY CONCUR_UPDATABLE
    no TYPE_SCROLL_INSENSITIVE CONCUR_READ_ONLY
    yes TYPE_SCROLL_INSENSITIVE CONCUR_UPDATABLE
    yes TYPE_SCROLL_SENSITIVE CONCUR_READ_ONLY
    yes TYPE_SCROLL_SENSITIVE CONCUR_UPDATABLE
    13. BUG-1324918
    Repeatedly updating a clob with jdbc-oci, prepared statement,
    and setCharacterStream consumes the temporary tablespace. If
    you repeatedly update the clob, either the temp tablespace will
    continue to grow, or you may get a Exception in thread "main"
    java.sql.SQLException: ORA-01652: unable to extend segment if
    you have a limit on the tablespace size. The work-around is to
    use oracle.sql.CLOB::setCharacterOutputStream() instead.

  • Does Oracle LOBs support streams ?

    Hi
    I am using Hibernate 3.2, Oracle 10g XE and
    latest version (10.2.0.2) of thin jdbc driver (ojdbc14.jar). I would like to read from a CLOB using a stream, but it seems impossible. I can read from a CLOB using a Reader, it reads all 18kb of data I have stored there. But all streams return -1, if I try to read them and available() returns 0.
    Report report = (Report) session.load(Report.class,reportName);
    Clob reportXml = report.getReport();
    Blob reportCompiled = report.getJasper();
    SerializableClob sclob=(SerializableClob) reportXml;
    CLOB oclob = (CLOB) sclob.getWrappedClob();
    try
      log.warn(sclob.getAsciiStream().available());   // 0
      log.warn(oclob.getAsciiStream().available());   // 0
      log.warn(oclob.getAsciiStream(0).available());   // 0
      log.warn(oclob.asciiStreamValue().available());   // 0
      log.warn(oclob.binaryStreamValue().available());   // 0
      log.warn(oclob.getStream().available());          // 86
    } catch(Exception ex) {}

    you are trying to do packaged function overloading. it is
    allowed in ORACLE.i think, error you are getting is some thing
    else. create your functions outside package separately with
    different names and test it. I think something wrong in
    functions logic.

  • Issue with SSRS Loading Report from Definition From Assembly

    I am using SharePoint 2010. I created web-part where there is report viewer control. On the page load of the control. I am writing below codes to load report from definition. Web part is not giving any error but also not lading report. I tried to make physical
    report file from my stream and I found that report is correct.
    But I don't know what is missing.
    protected void Page_Load(object sender, EventArgs e)
    if (!IsPostBack)
    Assembly assembly = Assembly.Load("Reports, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f51c855eec632536");
    Stream stream = assembly.GetManifestResourceStream("Reports.Reports.rdlc");
    MemoryStream rdl = new MemoryStream();
    CopyTo(stream, rdl);
    rptInspectorPlan.Reset();
    rptInspectorPlan.LocalReport.LoadReportDefinition(rdl);
    rptInspectorPlan.LocalReport.DataSources.Clear();
    rptInspectorPlan.LocalReport.DataSources.Add(new ReportDataSource("MyData", finalData(getInspectionPlan())));
    rptInspectorPlan.LocalReport.Refresh();
    protected DataTable getInspectionPlan()
    DataTable dt = new DataTable();
    DataTable dtCurrentUser = getCurrentUser();
    using (SPSite site = new SPSite(getMarketSurveillanceURL()))
    using (SPWeb web = site.OpenWeb())
    SPList list = web.Lists.TryGetList("InspectionPlan");
    SPQuery oQuery = new SPQuery();
    string query = "<Where><Eq><FieldRef Name='Title'/><Value Type='Text'>" + dtCurrentUser.Rows[0]["ID"].ToString() + "</Value></Eq></Where>";//getCurrentUserID()
    oQuery.Query = query;
    dt = list.GetItems(oQuery).GetDataTable();
    return dt;
    protected string getMarketSurveillanceURL()
    string URL = ConfigurationManager.AppSettings["MarketSurveillanceURL"].ToString();
    return URL;
    protected string getMainSiteURL()
    string URL = ConfigurationManager.AppSettings["MainSiteURL"].ToString();
    return URL;
    protected DataTable getCurrentUser()
    SPUser user = SPContext.Current.Web.CurrentUser;
    DataTable currentUser = new DataTable();
    using (SPSite site = new SPSite(getMarketSurveillanceURL()))
    using (SPWeb web = site.OpenWeb())
    SPList list = web.Lists.TryGetList("Inspector");
    SPQuery oQuery = new SPQuery();
    string query = "<Query><Where><Eq><FieldRef Name='LoginID'/><Value Type='Text'>" + user.LoginName + "</Value></Eq></Where></Query>";
    oQuery.ViewFields = "<FieldRef Name='ID'/><FieldRef Name='Title'/>";
    oQuery.Query = query;
    currentUser = list.GetItems(oQuery).GetDataTable();
    return currentUser;
    protected DataTable finalData(DataTable inspectionPlan)
    DataTable dt = inspectionPlan;
    DataTable dtCurrentUser = getCurrentUser();
    dt.Columns.Add("InspectorName");
    dt.Columns.Add("ProductName");
    dt.Columns.Add("CategoryName");
    dt.Columns.Add("InspectionTypeName");
    foreach (DataRow dr in dt.Rows)
    if (dr["Title"].ToString() == dtCurrentUser.Rows[0]["ID"].ToString()) dr["InspectorName"] = dtCurrentUser.Rows[0]["Title"].ToString();
    dr["ProductName"] = getProductName(dr["ProductID"].ToString());
    dr["CategoryName"] = getCategoryName(dr["ProductID"].ToString());
    switch (dr["InspectionType"].ToString())
    case "0":
    dr["InspectionTypeName"] = "Periodic";
    break;
    case "1":
    dr["InspectionTypeName"] = "ComplainFollowup";
    break;
    dt.AcceptChanges();
    return dt;
    protected string getProductName(string id)
    string productName = "";
    DataTable dt = new DataTable();
    using (SPSite site = new SPSite(getMarketSurveillanceURL()))
    using (SPWeb web = site.OpenWeb())
    SPList list = web.Lists.TryGetList("Product");
    SPQuery oQuery = new SPQuery();
    string query = "<Where><Eq><FieldRef Name='ID'/><Value Type='Text'>" + id + "</Value></Eq></Where>";//getCurrentUserID()
    oQuery.ViewFields = "<FieldRef Name='ProductEN'/><FieldRef Name='ProductAr'/>";
    oQuery.Query = query;
    dt = list.GetItems(oQuery).GetDataTable();
    foreach (DataRow dr in dt.Rows)
    productName = dr["ProductEN"].ToString();
    return productName;
    protected string getCategoryName(string productID)
    string categoryName = "", CategoryID = "";
    DataTable dtCategory = new DataTable();
    DataTable dtProduct = new DataTable();
    using (SPSite site = new SPSite(getMarketSurveillanceURL()))
    using (SPWeb web = site.OpenWeb())
    SPList list = web.Lists.TryGetList("Product");
    SPQuery oQuery = new SPQuery();
    string query = "<Where><Eq><FieldRef Name='ID'/><Value Type='Counter'>" + productID + "</Value></Eq></Where>";
    oQuery.ViewFields = "<FieldRef Name='CategoryID'/>";
    oQuery.Query = query;
    dtProduct = list.GetItems(oQuery).GetDataTable();
    foreach (DataRow dr in dtProduct.Rows)
    CategoryID = dr["CategoryID"].ToString();
    using (SPSite site = new SPSite(getMainSiteURL()))
    using (SPWeb web = site.OpenWeb())
    SPList list = web.Lists.TryGetList("SAS_Categories");
    SPQuery oQuery = new SPQuery();
    string query = "<Where><Eq><FieldRef Name='ID'/><Value Type='Text'>" + CategoryID + "</Value></Eq></Where>";
    oQuery.ViewFields = "<FieldRef Name='Category_Title_EN'/><FieldRef Name='Category_Title_Ar'/>";
    oQuery.Query = query;
    dtCategory = list.GetItems(oQuery).GetDataTable();
    foreach (DataRow dr in dtCategory.Rows)
    categoryName = dr["Category_Title_EN"].ToString();
    return categoryName;
    public static void CopyTo(Stream input, MemoryStream output)
    byte[] buffer = new byte[16 * 1024]; // Fairly arbitrary size
    int bytesRead;
    while ((bytesRead = input.Read(buffer, 0, buffer.Length)) > 0)
    output.Write(buffer, 0, bytesRead);

    Have you found a solution to this issue? I am searching for the same.

  • I have produced several short iMovie projects and want to link them into a continuous stream on a DVD.  Can it be done?  All of the projects are in my Moblie Me Gallery

    I have produced several short (2 to 3 minute) iMovie projects and want to link them in a continuous stream on a DVD.  The clips are in my Mobile Me gallery.  How can it be done?

    You can do that too, it's all in the iDVD program.
    But first you want to assemble the separate clips into one big long clip. For that you would use iMovie. Share to the Media Browser (choose the Large size). Let it export then quit iMovie.
    Open iDVD, click on the Media button and then the Movies button. Under the iMovie star icon you will see your final assembled clips movie. In the iDVD project window turn on the map view (it's little boxes that look like a flowchart) then drag the iMovie project into the first box:
    You can set the project to startup without a Menu, and then loop continuously as well. Go up to the Advanced Menu then click on the Loop movie option to turn it on.
    Once checked the Loop movie status will appear as curved arrow icon in the Project Window:
    In the lower right corner is the icon indicating this video clip will loop while being played.

  • How can I transfer photos from Apple TV to a new MacBook Pro?  I have My Photo Stream turned on for both.

    I have a new McBook Pro with OS X Mavericks.  I transferred my photos from my old MacBook Pro to my Apple TV.  I turned on My Photo Stream on both my Apple TV and my new MacBook Pro, and I want to transfer my photos to my new MacBook.  Will this work?  It's not transferring them automatically, but I don't know what else I need to do to make it work.  Thank you!

    no you can't only option is to take it apart and put the harddisk in an usb ext harddisk case and connect it to the computer copy the photos to the computer
    take the harddisk out of the ext usb harddisk case and put it back into the appletv and assemble it again

  • Exception raised while trying to join Table and Stream

    I have written a sample Project to fetch the data from a Table and join it with the Input Stream. Followed the same procedure specified at http://download.oracle.com/docs/cd/E17904_01/doc.1111/e14301/processorcql.htm#CIHCCADG
    I am getting the exception:
    <Error> <Deployment> <BEA-2045016> <The application context "Plugin" could not be started. Could not initialize component "<unknown>":
    Invalid statement: "select PROMOTIONAL_ORDER.ORDER_ID as orderId ,PROMOTIONAL_ORDER.UFD_ID as ufdId, PROMOTIONAL_ORDER.WEB_USER_ID as webUserId
                   from helloworldInputChannel [now] as dataStream, PROMOTIONAL_ORDER where >>PROMOTIONAL_ORDER.ORDER_ID = dataStream.ORDER_ID<<"
    Cause: wrong number or types of arguments in call to et
    Action: Check the spelling of the registered function. Also confirm that its call is correct and its parameters are of correct datatypes.>
    If the where condition is removed then the application runs fine fetching the data from the Tables.
    Following is the config.xml for processor:
    ======================================
    <?xml version="1.0" encoding="UTF-8"?>
    <n1:config xmlns:n1="http://www.bea.com/ns/wlevs/config/application">
         <processor>
              <name>helloworldProcessor</name>
              <rules>
                   <query id="dummyRule"> <![CDATA[
                   select PROMOTIONAL_ORDER.ORDER_ID as orderId ,PROMOTIONAL_ORDER.UFD_ID as ufdId, PROMOTIONAL_ORDER.WEB_USER_ID as webUserId
                   from helloworldInputChannel [now] as dataStream, PROMOTIONAL_ORDER where PROMOTIONAL_ORDER.ORDER_ID = dataStream.ORDER_ID
                   ]]></query>
              </rules>
         </processor>
    </n1:config>
    Following is the assembly file:
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:osgi="http://www.springframework.org/schema/osgi"
         xmlns:wlevs="http://www.bea.com/ns/wlevs/spring"
         xsi:schemaLocation="
    http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/osgi
    http://www.springframework.org/schema/osgi/spring-osgi.xsd
    http://www.bea.com/ns/wlevs/spring
    http://www.bea.com/ns/wlevs/spring/spring-wlevs-v11_1_1_3.xsd">
         <wlevs:event-type-repository>
              <wlevs:event-type type-name="CorpInterfaceEvent">
                   <wlevs:class>com.bea.wlevs.event.example.helloworld.CorpInterfaceEvent</wlevs:class>
              </wlevs:event-type>
              <wlevs:event-type type-name="PromotionalOrderEvent">
                   <wlevs:properties>
                        <wlevs:property name="ORDER_ID" type="bigint" />
                        <wlevs:property name="UFD_ID" type="bigint"/>
                        <wlevs:property name="WEB_USER_ID" type="bigint" />
                   </wlevs:properties>
              </wlevs:event-type>
              <wlevs:event-type type-name="DummyEvent">
                   <wlevs:properties>
                        <wlevs:property name="ORDER_ID" type="bigint" />
                        <wlevs:property name="UFD_ID" type="bigint"/>
                        <wlevs:property name="WEB_USER_ID" type="bigint" />
                   </wlevs:properties>
              </wlevs:event-type>
         </wlevs:event-type-repository>
         <!--
              Adapter can be created from a local class, without having to go
              through a adapter factory
         -->
         <wlevs:adapter id="helloworldAdapter"
              class="com.bea.wlevs.adapter.example.helloworld.HelloWorldAdapter">
              <wlevs:instance-property name="message"
                   value="HelloWorld - the current time is:" />
         </wlevs:adapter>
         <wlevs:channel id="helloworldInputChannel" event-type="CorpInterfaceEvent">
              <wlevs:listener ref="helloworldProcessor" />
              <wlevs:source ref="helloworldAdapter" />
         </wlevs:channel>
         <!-- The default processor for OCEP 11.0.0.0 is CQL -->
         <wlevs:processor id="helloworldProcessor">
              <wlevs:table-source ref="PROMOTIONAL_ORDER" />
         </wlevs:processor>
         <wlevs:channel id="helloworldOutputChannel" event-type="CorpInterfaceEvent"
              advertise="true">
              <wlevs:listener>
                   <bean class="com.bea.wlevs.example.helloworld.HelloWorldBean" />
              </wlevs:listener>
              <wlevs:source ref="helloworldProcessor" />
         </wlevs:channel>
         <wlevs:table id="PROMOTIONAL_ORDER" event-type="PromotionalOrderEvent"
              data-source="wlevsDatasource" />
    </beans>
    CorpInterfaceEvent.java:
    package com.bea.wlevs.event.example.helloworld;
    public class CorpInterfaceEvent {
    private Long orderId;
    public Long ORDER_ID;
    private Long ufdId;
    private Long webUserId;
    public CorpInterfaceEvent(){
         super();
    public Long getOrderId() {
         return orderId;
    public void setOrderId(Long orderId) {
         this.orderId = orderId;
    public Long getORDER_ID() {
         return ORDER_ID;
    public void setORDER_ID(Long oRDERID) {
         ORDER_ID = oRDERID;
    public Long getUfdId() {
         return ufdId;
    public void setUfdId(Long ufdId) {
         this.ufdId = ufdId;
    public Long getWebUserId() {
         return webUserId;
    public void setWebUserId(Long webUserId) {
         this.webUserId = webUserId;
    Adapter:
    /* (c) 2006-2009 Oracle. All rights reserved. */
    package com.bea.wlevs.adapter.example.helloworld;
    import java.math.BigDecimal;
    import java.text.DateFormat;
    import java.util.Date;
    import com.bea.wlevs.ede.api.RunnableBean;
    import com.bea.wlevs.ede.api.StreamSender;
    import com.bea.wlevs.ede.api.StreamSource;
    import com.bea.wlevs.event.example.helloworld.CorpInterfaceEvent;
    public class HelloWorldAdapter implements RunnableBean, StreamSource {
    private static final int SLEEP_MILLIS = 300;
    private DateFormat dateFormat;
    private String message;
    private boolean suspended;
    private StreamSender eventSender;
    public HelloWorldAdapter() {
    super();
    dateFormat = DateFormat.getTimeInstance();
    /* (non-Javadoc)
    * @see java.lang.Runnable#run()
    public void run() {
    suspended = false;
    while (!isSuspended()) { // Generate messages forever...
    generateHelloMessage();
    suspend();// This would generate the messages only once..
    try {
    synchronized (this) {
    wait(SLEEP_MILLIS);
    } catch (InterruptedException e) {
    e.printStackTrace();
    public void setMessage(String message) {
    this.message = message;
    private void generateHelloMessage() {
    String message = this.message + dateFormat.format(new Date());
    CorpInterfaceEvent event = new CorpInterfaceEvent();
    //event.setOrderId(1);
    event.setORDER_ID(Long.valueOf(1));
    eventSender.sendInsertEvent(event);
    /* (non-Javadoc)
    * @see com.bea.wlevs.ede.api.StreamSource#setEventSender(com.bea.wlevs.ede.api.StreamSender)
    public void setEventSender(StreamSender sender) {
    eventSender = sender;
    /* (non-Javadoc)
    * @see com.bea.wlevs.ede.api.SuspendableBean#suspend()
    public synchronized void suspend() {
    suspended = true;
    private synchronized boolean isSuspended() {
    return suspended;
    Kindly let me know if you need further info.

    Issue identified. The datatypes of the stream order id and the one from the tables differ.
    The Long could not be casted to the bigint format of CQL.
    On changing the datatype of ORDER_ID in the CorpInterfaceEvent to int, the join is successful.

  • DV Stream Export Settings, Locked or Unlocked Audio

    When capturing VHS tapes into Final Cut Express, I always keep my Canopus ADVC110 at the default settings, including locked audio.
    I don't understand why Final Cut Express' export as DV Stream includes a little box to check or uncheck, for locked or unlocked audio. The FCE default is unchecked (unlocked), and I've been keeping it that way during export.
    What does this do to the DV file?

    Ok, I understand. Me too. I archive photos, video & audio - TIFF for stills, AIFF for audio, but for video I wouldn't pick DVStream. It's not really like TIFF or AIFF. DVStream is the format recorded on miniDV tapes and at this point is reaching technological obsolescence.
    If you're trying to digitally preserve your VHS videos, QuickTime Movie would be far preferable to DVStream, technically today as well as considering its forward life. The codecs are the same, but the contents of the files are different. DVStream interleaves the audio, video & control streams (which is why it's so difficult to edit). QuickTime contains parallel video, audio & control tracks.
    If you have captured your material via a Canopus ADVC, you are editing QuickTime/DV-NTSC in Final Cut. When you export to QuickTime Movie you are getting the exact same material. When you export to QuickTime Conversion to DVStream, FCE has to parse all your video & audio and reassemble it into the chunks required to assemble the DVStream file. To use the file in the future you will need software that supports DVStream. Even today, while FCE can work with DVStream, it has to render the audio before it's usable. Doesn't have to do that with QuickTime. There are even more issues, but I think you get the point.

Maybe you are looking for