Can LogMiner capture DMLs against rows with Blob datatype?

Hi,
Can LogMiner catch DMLs against rows with Blob datatype?
if a Blob column is 4G big each row, and you delete millions of
rows, but your redo log files is only 600M totally, I don't know (not sure) how those before-images of data can be stored in redo logfiles (also, you may need a very large log_archive_dest to hold those before-images )
please help to explain.
Thanks
Roy

Hi,
Can LogMiner catch DMLs against rows with Blob datatype?
if a Blob column is 4G big each row, and you delete millions of
rows, but your redo log files is only 600M totally, I don't know (not sure) how those before-images of data can be stored in redo logfiles (also, you may need a very large log_archive_dest to hold those before-images )
please help to explain.
Thanks
Roy

Similar Messages

  • How to use insert row with BLOB to Oracle when use connection pool?

    Hi, All,
    I am writing a program to store files (mapped to be a column with BLOB datatype
    in the table) to Oracle database.
    But I always get java.lang.ClassCastException:weblogic.jdbc.rmi.SerialBlob
    Here is my code, please help. Thanks a lot!!
    String sqlNewRow = "insert into documents (id, companyid, updatedate, description,
    document, addby, title) ";
    sqlNewRow += "values (?, ?, TO_DATE(?, 'MM/DD/YY'), ?, EMPTY_BLOB(), ?,
    con.setAutoCommit(false);
    ps = con.prepareStatement(sqlNewRow);
    ps.setInt(1, documentid);
    ps.setInt(2, companyid);
    ps.setString(3, updatedate);
    ps.setString(4, description);
    ps.setString(5, username);
    ps.setString(6, filename);
    ps.executeUpdate();
    ps.close();
    String sqlLockRow = "select document from documents where id = ? for update";
    java.sql.PreparedStatement pst = con.prepareStatement(sqlLockRow);
    pst.setInt(1, documentid);
    java.sql.ResultSet rset = pst.executeQuery();
    rset.next();
    java.sql.Blob dbBlob = rset.getBlob(1);
    out.println("it's=" + dbBlob.getClass());
    OutputStream dbBlobOut = ((weblogic.jdbc.vendor.oracle.OracleThinBlob)dbBlob).getBinaryOutputStream();
    dbBlobOut.write(oneString.getBytes());
    dbBlobOut.close();
    rset.close();
    pst.close();

    Have you defined
    OutputStream dbBlobOut
    as weblogic.jdbc.vendor.oralce.OracleThinBlob?
    Mitesh
    Almond wrote:
    Hi, All,
    I am writing a program to store files (mapped to be a column with BLOB datatype
    in the table) to Oracle database.
    But I always get java.lang.ClassCastException:weblogic.jdbc.rmi.SerialBlob
    Here is my code, please help. Thanks a lot!!
    String sqlNewRow = "insert into documents (id, companyid, updatedate, description,
    document, addby, title) ";
    sqlNewRow += "values (?, ?, TO_DATE(?, 'MM/DD/YY'), ?, EMPTY_BLOB(), ?,
    con.setAutoCommit(false);
    ps = con.prepareStatement(sqlNewRow);
    ps.setInt(1, documentid);
    ps.setInt(2, companyid);
    ps.setString(3, updatedate);
    ps.setString(4, description);
    ps.setString(5, username);
    ps.setString(6, filename);
    ps.executeUpdate();
    ps.close();
    String sqlLockRow = "select document from documents where id = ? for update";
    java.sql.PreparedStatement pst = con.prepareStatement(sqlLockRow);
    pst.setInt(1, documentid);
    java.sql.ResultSet rset = pst.executeQuery();
    rset.next();
    java.sql.Blob dbBlob = rset.getBlob(1);
    out.println("it's=" + dbBlob.getClass());
    OutputStream dbBlobOut = ((weblogic.jdbc.vendor.oracle.OracleThinBlob)dbBlob).getBinaryOutputStream();
    dbBlobOut.write(oneString.getBytes());
    dbBlobOut.close();
    rset.close();
    pst.close();

  • Problem while importing table with blob datatype

    hi i am having a database 9i on windows xp and dev database 9i on AIX 5.2
    while i am taking export of normal tables and trying to import i am successful.but when i am trying to import a table with blob datatype it is throwing "tablespace <tablespace_name> doesn't exist" error
    here how i followed.
    SQL*Plus: Release 9.2.0.1.0 - Production on Mon Oct 8 14:08:29 2007
    Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
    Enter user-name: test@test
    Enter password: ****
    Connected to:
    Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
    With the Partitioning, OLAP and Oracle Data Mining options
    JServer Release 9.2.0.1.0 - Production
    SQL> create table x(photo blob);
    Table created.
    exporting:
    D:\>exp file=x.dmp log=x.log tables='TEST.X'
    Export: Release 9.2.0.1.0 - Production on Mon Oct 8 14:09:40 2007
    Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
    Username: pavan@test
    Password:
    Connected to: Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
    With the Partitioning, OLAP and Oracle Data Mining options
    JServer Release 9.2.0.1.0 - Production
    Export done in WE8MSWIN1252 character set and AL16UTF16 NCHAR character set
    About to export specified tables via Conventional Path ...
    Current user changed to TEST
    . . exporting table X 0 rows exported
    Export terminated successfully without warnings.
    importing:
    D:\>imp file=x.dmp log=ximp.log fromuser='TEST' touser='IBT' tables='X'
    Import: Release 9.2.0.1.0 - Production on Mon Oct 8 14:10:42 2007
    Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
    Username: system@mch
    Password:
    Connected to: Oracle9i Enterprise Edition Release 9.2.0.6.0 - 64bit Production
    With the Partitioning, Real Application Clusters, OLAP and Oracle Data Mining op
    tions
    JServer Release 9.2.0.6.0 - Production
    Export file created by EXPORT:V09.02.00 via conventional path
    Warning: the objects were exported by PAVAN, not by you
    import done in WE8MSWIN1252 character set and AL16UTF16 NCHAR character set
    import server uses US7ASCII character set (possible charset conversion)
    . importing TEST's objects into IBT
    IMP-00017: following statement failed with ORACLE error 959:
    "CREATE TABLE "X" ("PHOTO" BLOB) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS "
    "255 STORAGE(INITIAL 65536 FREELISTS 1 FREELIST GROUPS 1) TABLESPACE "TESTTB"
    "S" LOGGING NOCOMPRESS LOB ("PHOTO") STORE AS (TABLESPACE "TESTTBS" ENABLE "
    "STORAGE IN ROW CHUNK 8192 PCTVERSION 10 NOCACHE STORAGE(INITIAL 65536 FREE"
    "LISTS 1 FREELIST GROUPS 1))"
    IMP-00003: ORACLE error 959 encountered
    ORA-00959: tablespace 'TESTTBS' does not exist
    Import terminated successfully with warnings.
    why it is happening for this table alone?plz help me
    thanks in advance

    Here is exerpt from {
    http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:378418239571}
    =============================================
    Hi Tom,
    I have a dump file containing blob datatypes, when i import the dump file in a schema it gives an
    error stating that the tablespace for Blob datatype does not exists. My question is how do i import
    the dump file in the default tablespace of the importing user.
    Followup March 2, 2004 - 7am US/Eastern:
    You'll have to precreate the table.
    do this:
    imp userid=u/p tables=that_table indexfile=that_table.sql
    edit that_table.sql, fix up the tablespace references to be whatever you want to be, run that sql.
    then imp with ignore=y
    for any MULTI-SEGMENT object (iot's with overflows, tables with lobs, partitioned tables, for
    example), you have to do this -- imp will not rewrite ALL of the tablespaces in that
    multi-tablespace create -- hence you either need to have the same tablespaces in place or precreate
    the object with the proper tablespaces.
    Only for single tablespace segments will imp rewrite the create to go into the default if the
    requested tablespace does not exist.
    ===================================================
    To summarize: precreate target table when importing multi-segment tables

  • Deadlock when delete rows with blob.

    Hello
    I have the following issue. I try to clean a table that contains a BLOB column.
    To do this I use SQLDBC I create a statement that contains the LOB column, I fetch the line, load the Blob. and before fetching the next line, I send a delete request. and I fall in the deadlock.
    If I fetch the next line before sending the delete request there is no deadlock, there is also no deadlock if i do not request le LOB column in the select.
    In fact when I made select with LOB, there is the follwing line in DOMAIN.LOCKS
    SESSION;TRANSCOUNT;PROCESS;USERNAME;DATE;TIME;TERMID;LASTWRITE;LOCKMODE;LOCKSTATE;APPLPROCESS;APPLNODE;SCHEMANAME;OWNER;TABLENAME;TABLEID;ROWIDLENGTH;ROWIDHEX;ROWID;
    295513;                4290;438;ESKDBADM;2010-06-17;12:05:46;ly-delorme-u..1674;?;tab_share;?;5748;LY-DELORME.esker.corp;?;?;?;0000800000046919;0;?;?
    when i send the delete request the following lock appears in DOMAIN.LOCKS. A exclusif lock on the column I want to delete. It's ok
    SESSION;TRANSCOUNT;PROCESS;USERNAME;DATE;TIME;TERMID;LASTWRITE;LOCKMODE;LOCKSTATE;APPLPROCESS;APPLNODE;SCHEMANAME;OWNER;TABLENAME;TABLEID;ROWIDLENGTH;ROWIDHEX;ROWID;
    295521;                4287;167;ESKDBADM;2010-06-17;12:05:49;ly-delorme-u..1674;         5;row_exclusive;write;5748;LY-DELORME.esker.corp;ESKDBADM;ESKDBADM;DBM350_AUTOTESTXML;0000000000000934;5;00C51133800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000;
    BUT there is a dead lock , I think because of the following entry in DOMAIN.LOCK_WAITS
    TABLENAME;TABLEID;H_TERMID;H_PROCESS;H_APPLPROCESS;H_APPLNODE;H_ROWIDHEX;H_ROWID;H_LOCKMODE;H_DATE;H_TIME;H_LOCKTIMEOUT;R_TERMID;R_PROCESS;R_APPLPROCESS;R_APPLNODE;R_ROWIDHEX;R_ROWID;R_REQMODE;R_DATE;R_TIME;R_REQTIMEOUT;
    ?;0000800000046919;ly-delorme-u..1674;438;5748;LY-DELORME.esker.corp;?;?;tab_share;2010-06-17;12:05:46;?;ly-delorme-u..1674;167;5748;LY-DELORME.esker.corp;?;?;tab_exclusive;2010-06-17;12:05:49;      3585
    The database request a tab_exclusive lock on tableid 0000800000046918 but there is already a tab_share lock on this.
    Do you why there is a lock on the table :  tableid 0000800000046918 ?
    How to avoid this lock using SQLDBC ?
    Thanks for you help.
    Yann.

    this is the same reply as previous reply, this carriage return. I hope.
    Hello,
    Here is code that explain my issue.
    I create a table like this :
    create table "ESKDBADM"."DBM350_AUTOTESTXML"( "MSN" INTEGER not null, "DIST_FILE" BLOB, constraint SYSPRIMARYKEY primary key ("MSN"))
    And then I try to delete row with the following program. I do not understand why the request SELECT Msn, DIST_FILE FROM DBM350_AUTOTESTXML set a share lock on the tableid : 000080000004691D.
    I do not find this tableid in the "SYSINFO"."FILES" table.
    SESSION;TRANSCOUNT;PROCESS;USERNAME;DATE;TIME;TERMID;LASTWRITE;LOCKMODE;LOCKSTATE;APPLPROCESS;APPLNODE;SCHEMANAME;OWNER;TABLENAME;TABLEID;ROWIDLENGTH;ROWIDHEX;ROWID;
    295697; 5220;172;ESKDBADM;2010-06-21;11:01:40;ly-delorme-u..1CDC;?;tab_share;?;7388;LY-DELORME.esker.corp;?;?;?;000080000004691D;0;?;?
    // SQLDBC.cpp : Defines the entry point for the console application.
    // YOU MUST CHANGE CONNECTION SETTINGS.
    #include "stdafx.h"
    #include <stdio.h>
    #include <tchar.h>
    #include <comdef.h>
    #include <iostream>
    #include "SQLDBC.h"
    using namespace SQLDBC;
    static void parseArgs(int argc, wchar_t **argv);
    static SQLDBC_Connection *connectDB(SQLDBC_Environment * env = NULL);
    static char* convertToUCS2(char *src);
    static void usage();
    SQLDBC_Environment *g_env;
    typedef struct ConnectArgsT {
      bstrt username;
      bstrt password;
      bstrt dbname;  
      bstrt host;    
      bstrt request;    
    } ConnectArgsT;
    ConnectArgsT connectArgs;
    void exitOnError(SQLDBC_ErrorHndl &err);
    int _tmain(int argc, _TCHAR* argv[])
       parseArgs(argc, argv);
       SQLDBC_Connection *conn = connectDB();
       //* Create a new statment object and execute it.
       SQLDBC_PreparedStatement *stmt = conn->createPreparedStatement();
       // FREEZE
       if (connectArgs.request.length() == 0)
               connectArgs.request = "SELECT Msn, DIST_FILE FROM DBM350_AUTOTESTXML";     
       /* NO FREEZE
       if (connectArgs.request.length() == 0)
               connectArgs.request = "SELECT Msn FROM DBM350_AUTOTESTXML";
       char command = (char)((LPCWSTR)(connectArgs.request));
        //* Executes the UNICODE encoded SQL command.
       SQLDBC_Retcode ret = stmt->prepare((const char*)command, SQLDBC_StringEncodingType::UCS2Swapped);
       exitOnError(stmt->error());
       stmt->execute();
       exitOnError(stmt->error());
       // * Get the resultset.  
       SQLDBC_ResultSet *result;
       result = stmt->getResultSet();
       exitOnError(stmt->error());
       // * Fetch the row from the resultset.     
       result->next();
            SQLDBC::SQLDBC_RowSet* pRowset =  result->getRowSet();
         ret = pRowset->fetch();          
       exitOnError(result->error());
       wchar_t szString[30];
       SQLDBC_Length ind;
    Get a string value from the column.
       result->getObject(1, SQLDBC_HOSTTYPE_UCS2_SWAPPED, szString, &ind, sizeof(szString)); // Retreive MSN.
       // Delete de line.
       // Create a new connection for delete
       SQLDBC_Connection *conn2 = connectDB(g_env);
       //* Create a new statment object and execute it.
       SQLDBC_PreparedStatement *stmt2 = conn2->createPreparedStatement();
         std::wstring st = L"DELETE FROM DBM350_AUTOTESTXML WHERE MSN=";
         st +=  szString;
         stmt2->prepare((char*)st.c_str(), SQLDBC_StringEncodingType::UCS2Swapped);
        //* Executes the UNICODE encoded SQL command.
         ret = stmt2->execute();
       exitOnError(stmt->error());
       printf("%s\n", szString);
       return 0;
    static char *convertToUCS2(char *src)
      int len = strlen(src);
      wchar_t w=(wchar_t)calloc(len, sizeof(wchar_t));
      int nc = mbstowcs(w, src, len);
      if ((size_t)-1 == nc) {
        fprintf(stderr, "Conversion to UCS2 failed. Execution stopped.\n");
        exit(1);
      short s=(SQLDBC_Int2)calloc(nc+1, sizeof(SQLDBC_Int2));
      int i;
      for(i=0; i<nc; i++) {
        s<i> = w<i>;
      free(w);
      return (char*)s;
    static char* strupper(char *str)
        char *p=str;
        while(*p) {
            p=toupper(p);
            ++p;
        return str;
    static wchar_t *argv0;      
    #ifdef WIN32
    #define STRICMP _stricmp
    #else
    #define STRICMP strcasecmp
    #endif
    SQLDBC_Connection *connectDB(SQLDBC_Environment * env)
      char errorText[200];
      SQLDBC_Retcode rc;
      if (g_env == NULL)
    Every application has to initialize the SQLDBC library by getting a
    reference to the ClientRuntime and calling the SQLDBC_Environment constructor.
           SQLDBC_IRuntime *runtime;
           runtime = SQLDBC::GetClientRuntime(errorText, sizeof(errorText));
           if (!runtime) {
              fprintf(stderr, "Getting instance of the ClientRuntime failed %s\n", errorText);
              usage();
           env = new SQLDBC_Environment(runtime);
           g_env = env;
    Create a new connection object and open a session to the database.
      SQLDBC_Connection *conn = env->createConnection();
      printf("Connecting to '%s' on '%s' as user '%s'\n",
             (char)connectArgs.dbname, (char)connectArgs.host, (char*)connectArgs.username);
      rc = conn->connect(connectArgs.host, connectArgs.dbname,
                         connectArgs.username, connectArgs.password);
      if(SQLDBC_OK != rc) {
        fprintf(stderr, "Can't connect to '%s'.\nERROR: %d:'%s'\n",
                connectArgs.dbname, conn->error().getErrorCode(), conn->error().getErrorText());
        exit(1);
      return conn;
    static void parseArgs (int argc, wchar_t **argv)
      argv0 = wcsdup(argv[0]);
    setting defaults for demo database
      connectArgs.username = "ESKDBADM";
      connectArgs.password = "DELORME";
      connectArgs.dbname = "EDP350";
      connectArgs.host = "ly-delorme";
    use values from command line
      if (argc > 5) {
        connectArgs.request = argv [5];
      if (argc > 4) {
        connectArgs.host = argv [4];
      if (argc > 3) {
        connectArgs.dbname = argv [3];
      if (argc > 2) {
        connectArgs.password = argv [2];
      if (argc > 1) {
        if (!wcsicmp(argv [1], L"-h"))
          usage();
        else {
          connectArgs.username = argv [1];
      strupper(connectArgs.username);
      strupper(connectArgs.password);
    void exitOnError(SQLDBC_ErrorHndl &err)
      if(err) {
        fprintf(stderr, "Execution stopped %d:'%s'", err.getErrorCode(), err.getErrorText());
        exit(1);
    static void usage()
      wchar_t *s = wcsrchr(argv0, L'/');
      if (!s)
        s = wcsrchr(argv0, L'
      if (s)
        *s = '\0';
      printf("Syntax: %s [-h] | [<connect_options>]\n"
             "\tconnect_options :: \n"
             "\t\t[ <username> \n"
             "\t\t[ <password>\n"
             "\t\t[ <database_name>\n"
             "\t\t[ <database_server> ]]]]\n"
               "\t\t[ <request> ]]]]\n"
             "\tCalling %s without any arguments will use user '%s','%s'\n"
             "\t\ton database '%s' at server '%s'\n",
             argv0, argv0,
             connectArgs.username, connectArgs.password,
             connectArgs.dbname, connectArgs.host);
      exit(1);

  • Capturing EDT/EST timezone with TIMESTAMP datatype

    Hi guys,
    In 9i DB, I need to capture date and timestamp with EDT or EST time zone specifiers. For testing pursposes, I wrote the following code and the result is as:
    SET SERVEROUT ON
    DECLARE
    v_date TIMESTAMP WITH LOCAL TIME ZONE;
    BEGIN
    v_date := TIMESTAMP '2003-06-15 12:16:30 US/Eastern EDT';
    DBMS_OUTPUT.PUT_LINE(v_date);
    END;
    I get the following result:
    15-JUN-03 12.16.30.000000 PM
    Actually I need 15-JUN-03 12.16.30.000000 PM EDT or EST depending on the daylight times in the Eastern coast. Also, I did change my SESSION with ALTER SESSION SET TIME_ZONE='US/Eastern' but still I do not get the promising output. I just put it to the forum in the hope if someone could help me out with the new timestamp datatype in this case please.
    Any help will highly be appreciated.
    Thanks
    Zahir

    WE need to set the NLS_TIMESTAMP_TZ_FORMAT and give apropriate format when printing timestamp:
    SQL> alter session set nls_timestamp_tz_format = 'DD-MON-YYYY HH24:MI:SS TZD' ;
    Session altered.
    SQL> DECLARE
      2     v_date TIMESTAMP WITH LOCAL TIME ZONE;
      3  BEGIN
      4     v_date := TIMESTAMP '2003-&1-15 12:16:30 US/Eastern';
      5     DBMS_OUTPUT.PUT_LINE(TO_CHAR(v_date, 'DD-MON-YYYY HH:MI:SS TZD'));
      6  END;
      7  /
    Enter value for 1: 01
    old   4:        v_date := TIMESTAMP '2003-&1-15 12:16:30 US/Eastern';
    new   4:        v_date := TIMESTAMP '2003-01-15 12:16:30 US/Eastern';
    15-JAN-2003 01:16:30
    PL/SQL procedure successfully completed.
    SQL> /
    Enter value for 1: 06
    old   4:        v_date := TIMESTAMP '2003-&1-15 12:16:30 US/Eastern';
    new   4:        v_date := TIMESTAMP '2003-06-15 12:16:30 US/Eastern';
    15-JUN-2003 12:16:30
    PL/SQL procedure successfully completed.
    SQL>When I enter a date in January, it prints the time as 01:16:30 (even though the time specified in the value was 12:16:30).
    And, next when I enter a date in June, it prints the time as 12:16:30 (this is what we entered).

  • Can you capture desktop/monitor footage with Premiere CC?

    I'm looking to put together some animation tutorials/making of kind of videos and want to record my digital process as I work.  To my knowledge Premiere can't do this but I noticed while researching that some editing software does so I figured it'd be worth checking since I already have Premiere CC anyway.  I dug around the program a bit and I'm not seeing anything but I'm not entirely sure I'd spot the options for it if it does.
    Thanks

    Premiere only captures from a Firewire feed... not off the screen... there are a lot of other programs
    Here are some Screen Capture Notes/Problems
    NOTE - do NOT use a Variable Frame Rate capture setting !!!
    Free Open Source software http://camstudio.org/
    -use with Lossless Lagarith http://forums.adobe.com/thread/875797
    http://www.pixelmetrics.com/
    Some of these notes are for Premiere Elements, but may help with PPro
    Fraps & Elements http://forums.adobe.com/thread/967201
    -and Elements preset http://forums.adobe.com/thread/943772
    -and more Elements http://forums.adobe.com/thread/871095
    Camtasia http://forums.adobe.com/thread/836800
    -and Lagarith Codec http://forums.adobe.com/thread/1287577
    -and http://forums.adobe.com/thread/775288
    -and http://forums.adobe.com/thread/453044
    -and http://forums.adobe.com/message/3202148
    Techsmith codec http://forums.adobe.com/message/3692768
    -and http://forums.adobe.com/thread/1046914?tstart=0
    BB Flashback http://forums.adobe.com/thread/1074014
    XSplit recorder http://forums.adobe.com/thread/1160940
    Elgato http://forums.adobe.com/thread/1163126 w/picture
    Dxtory http://forums.adobe.com/message/5172056
    Bandicam read #10 http://forums.adobe.com/thread/954394
    Hauppauge MPEG-2 TS http://forums.adobe.com/thread/1285168
    -and http://forums.adobe.com/thread/1289304 for MANY links

  • Cannot capture, but can do pretty much everything else with deck. What now?

    Hello everybody,
    I'm writing for the Gateway Media Center. We're basically a small group of students which handles anything video or TV related for a public school district, mainly the high school. Our main editing system (Mac connected to a MiniDV deck via FireWire)is the subject of this post.
    And we've got a bit of a problem. I've seen it at least once before on these forums, but no solution in that topic helped.
    Basically, we can't capture video or audio with Final Cut Pro, but we can control the deck, watch audio levels coming from the deck within Final Cut, and even record edited material to tape with the deck just fine. We CAN capture with another application.
    I'd like to say that NO, we have not updated anything within the past six months or so, at least not to my knowledge. (The problem started last week).
    *_A detailed decription of what DOESN'T work:_*
    Log & Capture window: The preview monitor within the window always shows the default color bars and the black horizontal band that roughly says 'Preview Disabled'.
    *With device 'FireWire NTSC' selected:*
    *Aud+Vid, Capture Now:* The black window with the whire Final Cut window opens. The bottom says 'Waiting for Timecode'. After this sits there for a few seconds, a message pops up and says roughly 'The operation could not be completed because there is no video'. The deck is automatically paused.
    *Video Only, Cap. Now:* same as above^.
    *Audio Only, Cap. Now:* Black window, bottom says 'capturing now', as it should, but when the Esc key is hit a message that says roughly 'ERROR: Final Cut could not read the movie file just captured' pops up.
    *With 'Non-Controlable device' selected:* same as above, except that 'Waiting for Timecode' is replaced with 'Allocating Disk Space'.
    *A detailed description of what DOES work:*
    - Video and Audio go TO the deck, whether it's from Timeline/Canvas, Viewer, or Print to Video. I succesfully recorded an edit to tape just yesterday.
    - The deck can be controlled with the JKL keys, the buttons on the Log & Cap. window, go to In point and even Batch Capture cues the tape correctly.
    - Timecode is visible in the top right of the preview monitor in the L&C window, and it is the right timecode.
    - Audio levels visible (in that stand-alone window which is usually to the right of the timeline) match what I'm hearing from the deck's analog monitor.
    - Vidi, a simple little program, can record video which is manually cued with the deck. The saved video file(s) can then be successfully imported into FCP.
    _*Trouble-shooting ALREADY attempted:*_
    1) Correct turn on order: Shut everything down, unplug the deck's power, turn on and log into Mac, plug in deck and wait for it to wake up, turn the deck on, then launch Final Cut.
    2) Check deck's input and output settings.
    3) Unplug other FireWire devices. (We use an external hard drive connected on the same firewire bus. Not that it's ever been a problem)
    4) Change Captrue Scratch location and make sure there's enough disk space.
    5) Delete Final Cut Pro Preferences and that 'com.apple.finalcutpro.plist' thing.
    _*Trouble-shooting NOT attempted:*_
    1) Replace FireWire cable. I think it's safe to say the cable's fine since the computer can capture with Vidi, but I guess I should try this too, next time I get a chance.
    2) Remove receipts and Re-install Final Cut Pro. (Really, a last resort.)
    _*The specs:*_
    Yes, this stuff is pretty old. Like I said, we're talking about a pulic school district, and the system usually suits us just fine.
    FCP: Final Cut Pro HD (Academic) 4.5
    +set up with the 'DV NTSC 48kHz' Easy Setup. Video playback on 'FireWire NTSC 720x480'. Yes, External Video All Frames.+
    *The Mac:* PowerMac G4 (of what I believe would be called the MDD case model family)
    OS: Mac OS X, version 10.3.9
    CPUs: Dual 1.25GHz PowerPC G4, 2 MB L3 cache per processor
    RAM: 1 GB DDR SDRAM
    HDDs: Two drives, reportedly on the 'ATA-6' bus.
    *The Deck:* JVC SR-DVM700 (3-in-1 MiniDV (with the 'PROFESSIONAL DV' logo), hard drive, and DVD-RW/RAM), 4-pin FireWire port connected to 6-pin port on Mac.
    +Deck's Monitor:+ one professional CRT video monitor with built-in mono speaker, analog inputs directly connected to deck, made by JVC.
    Sorry about the long post, I wanted to make it clear.
    We're getting into a nice crunch as the school year is ending, and we really need to get this running. Any tips would be great!
    Thanks,
    Jake T.
    +Gateway Media Communication Center / Gateway High School Video Club / Gateway Video Productions+

    That makes sense, but our problem started last week - Final Cut captured fine before then.
    And I don't think it's been updated lately, as 7.4.5 is the latest version of QuickTime for OS10.3.9. If an update caused the problem, wouldn't the update be to 7.4.5, and not 7.3.1?
    Nevertheless, I'll try it.
    Thanks,
    Jake T.

  • Insert multiple row of BLOB using Master Detail Form

    Hi,
    I try to insert multiple photos in a master detail form (just like we upload attachments when sending email), but it seems that the Tabular Form doesn't support adding a row with BLOB. I have searched the User's Guide and API Reference, but no answer on this issue.
    Anyone can help?
    regards,
    Wei

    Many thanks,
    I find another way. I released the FK of these two tables and used the code:
    Insert into PRODUCT_INFO (TITLE) values(:P1_TITLE);
    IF ( :P1_PHOTO1 is not null ) THEN
    INSERT INTO PRODUCT_IMG(PHOTO, MIMETYPE, PROPERTY_ID)
    SELECT blob_content,mime_type, "PRODUCT_INFO_SEQ".currval
    FROM APEX_APPLICATION_FILES
    WHERE name = :P1_PHOTO1;
    DELETE from APEX_APPLICATION_FILES WHERE name = :P1_PHOTO1;
    END IF;
    IF ( :P1_PHOTO2 is not null ) THEN
    INSERT INTO PRODUCT_IMG(PHOTO, MIMETYPE, PROPERTY_ID)
    SELECT blob_content,mime_type, "PRODUCT_INFO_SEQ".currval
    FROM APEX_APPLICATION_FILES
    WHERE name = :P1_PHOTO2;
    DELETE from APEX_APPLICATION_FILES WHERE name = :P1_PHOTO2;
    END IF;
    The disadvantage is that I have to set a certain number of items for inserting photos; the max numbers of uploaded photos cannot decided by users.
    Regards.

  • Select or deselect multiple rows with one single selection  event

    Does anyone know how to create a JTable which can select or deselect multiple rows with one single selection event in JTable. Fore example, if the table has
    row1
    row2
    row3
    row4
    row5
    row6
    What I need is when user select row1 or row2, both row1 and row2 should be set to be selected. Then if user press CTRL and click one of row3 or row4, both of them should be selected including the previouse selected row1 and row2.
    For deselection, if row1 and row2 are selected, when users deselect one of row1 or row2, both of them should be deselected.
    Hopefully someone can give me a hint.

    Here is a partial solution using a JList. Only one line gets highlighted when the user makes a selection in the list. But, two lines are returned. There is a blank line between every two lines.
         private void addLineToList() {
              String a = f_one.getText();
              String b = f_two.getText();
              if (a.length() == 0) {
                   Utils.showInformationMessage("Item field is empty.");
                   f_one.requestFocusInWindow();
                   return;
              if (b.length() == 0) {
                   Utils.showInformationMessage("Match field is empty.");
                   f_two.requestFocusInWindow();
                   return;
              model.addElement("item: " + a);
              model.addElement("match: " + b);
              model.addElement(" ");
              int size = model.getSize();
              pairList.setSelectedIndex(size - 3);
              f_one.setText("");
              f_two.setText("");
              f_one.requestFocusInWindow();
         private void editList() {
              if (pairList.getSelectedValue().toString().equalsIgnoreCase(" ")) {
                   Toolkit.getDefaultToolkit().beep();
                   f_one.requestFocusInWindow();
                   return;
              if (!f_one.getText().equals("")) {
                   int result = JOptionPane.showConfirmDialog(this,
                   "The Item field contains text. Replace the text?",
                   "Flash Card Activity", JOptionPane.YES_NO_OPTION,
                   OptionPane.INFORMATION_MESSAGE);
                   if (result == JOptionPane.NO_OPTION) return;
              if (!f_two.getText().equals("")) {
                   int result = JOptionPane.showConfirmDialog(this,
                   "The Match field contains text. Replace the text?",
                   "Flash Card Activity", JOptionPane.YES_NO_OPTION,
                   JOptionPane.INFORMATION_MESSAGE);
                   if (result == JOptionPane.NO_OPTION) return;
              String item = "";
              String match = "";
              int index = pairList.getSelectedIndex();
              String choice = model.getElementAt(index).toString();
              if (choice.startsWith("item")) {
                   item = choice;
                   match = model.getElementAt(index + 1).toString();
                   model.remove(index);
                   model.remove(index);
                   model.remove(index);
              else {
                   item = model.getElementAt(index - 1).toString();
                   match = choice;
                   model.remove(index + 1);
                   model.remove(index);
                   model.remove(index - 1);
              int size = model.getSize();
              if (size > 2) {
                   pairList.setSelectedIndex(size - 2);
              f_one.setText(item.substring(6));
              f_two.setText(match.substring(7));
              f_one.requestFocusInWindow();
         }

  • One row with checkboxes in ALV

    Hi All,
    I woud like to create an ALV which consists of a row with checkboxes.
    Eg.:
    Doc  - Mat - Unit - Date
       1 -1234 -  pc - 010109
       2 - 545 - pc - 050208
       3 - X - X - X   
       4 - 466 - pc - 251208
    You can see that the 3. row has 3 checkboxes.
    Is this possible?
    Thanks in advance,
    Gabor
    Edited by: Gabor Peter Kocsis on Jan 15, 2009 9:14 PM

    Hi,
    No, you can't take a single row with checkboxes and other rows for other fields.
    But instead you can add a checkbox for each row in ALV.
    Regards,
    Tarun Gambhir

  • How to create the new row with existing values

    Hi all,
    first of all i create a row,
    i opened that in edit mode,
    suppose i want to edit any one of the value in that recordd,
    that time compulsory create a new row with those valuess.
    how can i create a new row with those valuess.

    Hi Anusha,
    This code correct for your requirement, only thing is you are not able to modify it as per your requirement.
    What you have to do is:
    1. Copy queried row into into new row, change primary key values(but don't commit your changes here).
    2. Now you have two rows in your VO(OLD as well as New)
    3. Make any changes if you want using User Interface.
    4. At the save button first compare OLD and NEW row, if any value is differing then commit the chnages(it will insert new row in corresponding database table), if no changes are there I mean to say OLD value and NEW rows are same then rollback(it will remove copied row from VO and no row will be inserted in database.)
    While comparing rows please note that Primary keys will not be same so don't compare Primary keys while comparing rows.
    I hope it will help you.
    Regards,
    Reetesh Sharma

  • Cannot view BLOB datatypes in Oracle10g

    After a successful upgrade from Oracle8i to Oracle10g, I cannot view tables with BLOB datatypes. I'm getting the following error in SQL*PLUS upon quering the table:
    SP2-0678: Column or attribute type can not be displayed by SQL*Plus
    When i try to do the same thing from TOAD, I'm getting this error instead:
    A Query with LOB's requires OC18 mode, but OC17 mode is used.
    I have also tried to create a new table with BLOB datatype (since i thought the culprit was a broken migrated data) but I got the same error. What am I missing here????

    Hy,
    you never could view blobs via sqlplus
    you only could use utl_raw.cast_to_varchar2 if there ist text inside your blobs.
    regard
    Martin

  • Insert record in table having BLOB datatype

    Hi All,
    I have a table with BLOB datatype, Pls assist me how to insert a record in this table?
    CREATE TABLE document_BLOB_tab (
    doc_id_no NUMBER
    , doc_name VARCHAR2(200)
    , doc_value BLOB);
    What are the process to execute DBMS_LOB.fileOpen ?
    Rgds
    Sarfaraz

    1- Create a table that has a list of all directory, filenames combination
    SQL> create table listpic (directory varchar2(10), filename varchar2(10));
    Table created.
    2- Insert into that table all your directories and the filenames of the images within each
    directory (directory, filename) combination
    on my file system, I have
    d:\tars\samples1\lilies.jpg
    d:\tars\samples1\Sunset.jpg
    d:\tars\samples2\Blue.jpg
    d:\tars\samples1\Winter.jpg
    Here is my insert statment
    SQL> insert into listpic values('Samples1', 'lilies.jpg');
    1 row created.
    SQL> insert into listpic values('Samples1', 'Sunset.jpg');
    1 row created.
    SQL> insert into listpic values('Samples2', 'Blue.jpg');
    1 row created.
    SQL> insert into listpic values('Samples2', 'Winter.jpg');
    1 row created.
    SQL> commit;
    Commit complete.
    SQL> select * from listpic;
    DIRECTORY FILENAME
    Samples1 lilies.jpg
    Samples1 Sunset.jpg
    Samples2 Blue.jpg
    Samples2 Winter.jpg
    3- Create the table where you are going to store your pictures
    SQL> create table pictures (id number(5), image blob);
    Table created.
    4- Create a directory pointing to the common parent Directory
    SQL> create or replace directory IMAGES as 'd:\tars';
    Directory created.
    5- Create the following procedure to insert the image
    SQL> set serveroutput on
    SQL> create or replace procedure insert_image as
    2 f_lob bfile;
    3 b_lob blob;
    4 i number := 1;
    5 cursor image_cur is select directory, filename from listpic;
    6 pic_rec image_cur%ROWTYPE;
    7 begin
    8
    9 OPEN image_cur;
    10 Loop
    11 fetch image_cur into pic_rec;
    12 EXIT WHEN image_cur%NOTFOUND;
    13 insert into pictures values ( i, empty_blob() )
    14 return image into b_lob;
    15
    16 f_lob := bfilename( 'IMAGES','\'||pic_rec.DIRECTORY||'\'||pic_rec.FILENAME);
    17 dbms_lob.fileopen(f_lob, dbms_lob.file_readonly);
    18 dbms_lob.loadfromfile( b_lob, f_lob, dbms_lob.getlength(f_lob) );
    19 dbms_lob.fileclose(f_lob);
    20 dbms_output.put_line (pic_rec.directory ||'\'||pic_rec.filename);
    21 commit;
    22 i := i+1;
    23 END LOOP;
    24 end;
    25 /
    Procedure created.
    6- execute the procedure
    SQL> exec insert_image;
    Samples1\lilies.jpg
    Samples1\Sunset.jpg
    Samples2\Blue.jpg
    Samples2\Winter.jpg
    PL/SQL procedure successfully completed.
    SQL> select count(*) from pictures;
    COUNT(*)
    4
    SQL> select length(image) from pictures;
    LENGTH(IMAGE)
    83794
    71189
    28521
    105542
    Image has been uploaded to the dataabase.

  • Will "Save For Later" functionality work on BLOB datatype ?

    Hi,
    I read funtionality "Save For Later" from ADF Developer Guide. And tested it using JDEVELOPER 11.1.1.6 on a DB table with Number, Date, Varchar2 datatypes.
    But can I create a table with BLOB datatype & make use of this functionality?
    Thanks in advance for your replies.

    Fill free to try, and let us to know ;-)
    user4945886 wrote:
    But can I create a table with BLOB datatype & make use of this functionality?

  • How can i get all these values in single row with comma separated?

    I have a table "abxx" with column "absg" Number(3)
    which is having following rows
    absg
    1
    3
    56
    232
    43
    436
    23
    677
    545
    367
    xxxxxx No of rows
    How can i get all these values in single row with comma separated?
    Like
    output_absg
    1,3,56,232,43,436,23,677,545,367,..,..,...............
    Can you send the query Plz!

    These all will do the same
    create or replace type string_agg_type as object
    2 (
    3 total varchar2(4000),
    4
    5 static function
    6 ODCIAggregateInitialize(sctx IN OUT string_agg_type )
    7 return number,
    8
    9 member function
    10 ODCIAggregateIterate(self IN OUT string_agg_type ,
    11 value IN varchar2 )
    12 return number,
    13
    14 member function
    15 ODCIAggregateTerminate(self IN string_agg_type,
    16 returnValue OUT varchar2,
    17 flags IN number)
    18 return number,
    19
    20 member function
    21 ODCIAggregateMerge(self IN OUT string_agg_type,
    22 ctx2 IN string_agg_type)
    23 return number
    24 );
    25 /
    create or replace type body string_agg_type
    2 is
    3
    4 static function ODCIAggregateInitialize(sctx IN OUT string_agg_type)
    5 return number
    6 is
    7 begin
    8 sctx := string_agg_type( null );
    9 return ODCIConst.Success;
    10 end;
    11
    12 member function ODCIAggregateIterate(self IN OUT string_agg_type,
    13 value IN varchar2 )
    14 return number
    15 is
    16 begin
    17 self.total := self.total || ',' || value;
    18 return ODCIConst.Success;
    19 end;
    20
    21 member function ODCIAggregateTerminate(self IN string_agg_type,
    22 returnValue OUT varchar2,
    23 flags IN number)
    24 return number
    25 is
    26 begin
    27 returnValue := ltrim(self.total,',');
    28 return ODCIConst.Success;
    29 end;
    30
    31 member function ODCIAggregateMerge(self IN OUT string_agg_type,
    32 ctx2 IN string_agg_type)
    33 return number
    34 is
    35 begin
    36 self.total := self.total || ctx2.total;
    37 return ODCIConst.Success;
    38 end;
    39
    40
    41 end;
    42 /
    Type body created.
    [email protected]>
    [email protected]> CREATE or replace
    2 FUNCTION stragg(input varchar2 )
    3 RETURN varchar2
    4 PARALLEL_ENABLE AGGREGATE USING string_agg_type;
    5 /
    CREATE OR REPLACE FUNCTION get_employees (p_deptno in emp.deptno%TYPE)
    RETURN VARCHAR2
    IS
    l_text VARCHAR2(32767) := NULL;
    BEGIN
    FOR cur_rec IN (SELECT ename FROM emp WHERE deptno = p_deptno) LOOP
    l_text := l_text || ',' || cur_rec.ename;
    END LOOP;
    RETURN LTRIM(l_text, ',');
    END;
    SHOW ERRORS
    The function can then be incorporated into a query as follows.
    COLUMN employees FORMAT A50
    SELECT deptno,
    get_employees(deptno) AS employees
    FROM emp
    GROUP by deptno;
    ###########################################3
    SELECT SUBSTR(STR,2) FROM
    (SELECT SYS_CONNECT_BY_PATH(n,',')
    STR ,LENGTH(SYS_CONNECT_BY_PATH(n,',')) LN
    FROM
    SELECT N,rownum rn from t )
    CONNECT BY rn = PRIOR RN+1
    ORDER BY LN desc )
    WHERE ROWNUM=1
    declare
    str varchar2(32767);
    begin
    for i in (select sal from emp) loop
    str:= str || i.sal ||',' ;
    end loop;
    dbms_output.put_line(str);
    end;
    COLUMN employees FORMAT A50
    SELECT e.deptno,
    get_employees(e.deptno) AS employees
    FROM (SELECT DISTINCT deptno
    FROM emp) e;
    DEPTNO EMPLOYEES
    10 CLARK,KING,MILLER
    20 SMITH,JONES,SCOTT,ADAMS,FORD
    30 ALLEN,WARD,MARTIN,BLAKE,TURNER,JAMES
    CREATE OR REPLACE FUNCTION concatenate_list (p_cursor IN SYS_REFCURSOR)
    RETURN VARCHAR2
    IS
    l_return VARCHAR2(32767);
    l_temp VARCHAR2(32767);
    BEGIN
    LOOP
    FETCH p_cursor
    INTO l_temp;
    EXIT WHEN p_cursor%NOTFOUND;
    l_return := l_return || ',' || l_temp;
    END LOOP;
    RETURN LTRIM(l_return, ',');
    END;
    COLUMN employees FORMAT A50
    SELECT e1.deptno,
    concatenate_list(CURSOR(SELECT e2.ename FROM emp e2 WHERE e2.deptno = e1.deptno)) employees
    FROM emp e1
    GROUP BY e1.deptno;
    DEPTNO EMPLOYEES
    10 CLARK,KING,MILLER
    20 SMITH,JONES,SCOTT,ADAMS,FORD
    30 ALLEN,WARD,MARTIN,BLAKE,TURNER,JAMES
    CREATE OR REPLACE TYPE t_string_agg AS OBJECT
    g_string VARCHAR2(32767),
    STATIC FUNCTION ODCIAggregateInitialize(sctx IN OUT t_string_agg)
    RETURN NUMBER,
    MEMBER FUNCTION ODCIAggregateIterate(self IN OUT t_string_agg,
    value IN VARCHAR2 )
    RETURN NUMBER,
    MEMBER FUNCTION ODCIAggregateTerminate(self IN t_string_agg,
    returnValue OUT VARCHAR2,
    flags IN NUMBER)
    RETURN NUMBER,
    MEMBER FUNCTION ODCIAggregateMerge(self IN OUT t_string_agg,
    ctx2 IN t_string_agg)
    RETURN NUMBER
    SHOW ERRORS
    CREATE OR REPLACE TYPE BODY t_string_agg IS
    STATIC FUNCTION ODCIAggregateInitialize(sctx IN OUT t_string_agg)
    RETURN NUMBER IS
    BEGIN
    sctx := t_string_agg(NULL);
    RETURN ODCIConst.Success;
    END;
    MEMBER FUNCTION ODCIAggregateIterate(self IN OUT t_string_agg,
    value IN VARCHAR2 )
    RETURN NUMBER IS
    BEGIN
    SELF.g_string := self.g_string || ',' || value;
    RETURN ODCIConst.Success;
    END;
    MEMBER FUNCTION ODCIAggregateTerminate(self IN t_string_agg,
    returnValue OUT VARCHAR2,
    flags IN NUMBER)
    RETURN NUMBER IS
    BEGIN
    returnValue := RTRIM(LTRIM(SELF.g_string, ','), ',');
    RETURN ODCIConst.Success;
    END;
    MEMBER FUNCTION ODCIAggregateMerge(self IN OUT t_string_agg,
    ctx2 IN t_string_agg)
    RETURN NUMBER IS
    BEGIN
    SELF.g_string := SELF.g_string || ',' || ctx2.g_string;
    RETURN ODCIConst.Success;
    END;
    END;
    SHOW ERRORS
    CREATE OR REPLACE FUNCTION string_agg (p_input VARCHAR2)
    RETURN VARCHAR2
    PARALLEL_ENABLE AGGREGATE USING t_string_agg;
    /

Maybe you are looking for