[Oracle][ODBC]Invalid bookmark value.

Hi
Any body knows that error message?
When I use moveNext property of a recordset, I get that error.

2145838 - ODBC is not downgrading cursor type from adOpenStatic on what appear to be non-updatable queries. This all used to work on 8.1.7.0.0.
2146184 - adOpenStatic Cursor Type Appears to Cause a Non-updatable Query on The Same Table to Drop the First Column.
2049732 - Queries against multiple tables, such as "SELECT * FROM EMP, DEPT" drop the first column from the resultset using the 8.1.7.4 ODBC driver. The problem did not reproduce against the 8.1.7.3 driver or the Microsoft ODBC driver version 2.573.7713.00.

Similar Messages

  • Oracle ODBC Error - Option Value Changed - What does it Mean and How to fix

    We have an asp web report making calls to an oracle 8i database. It appears that we get the following error on regular basis for one particular report:
    Microsoft OLE DB Provider for ODBC Drivers error '80040e31'
    [Oracle][ODBC]Option value changed.
    /FinalBilling/Report2.asp, line 49
    When the web page is refreshed, it appears the error goes away. Any new call to the database from the web page will start with the error again though.
    Other web pages seem to work ok with out error.
    Did a number of google searches did not find anything definative that seemed to help.

    These messages can be ignored. They are common but innocuous. There is nothing you need to fix.

  • Invalid bookmark in an unbound Sheridan grid with Oracle 9i

    Hi, we have an application that worked on Oracle 8i with oo4o and oraoldb.
    We use a Sheridan grid in unbound mode with the following code in the unboundReadData event where RecGlobal is an OraDynaset:
    Public Sub UnboundReadData(RowBuf As SSDataWidgets_B.ssRowBuffer, StartLocation As Variant, ReadPriorRows As Boolean)
    On Error GoTo ErrorGridStreetSectorUnboundReadData:
    Dim Rcnt, Rcount, Rcounter As Integer
    If Grid.Redraw = False Then Exit Sub
    If recGlobal Is Nothing Then Exit Sub
    If IsNull(StartLocation) Then
    If ReadPriorRows Then
    recGlobal.MoveLast
    Else
    recGlobal.MoveFirst
    End If
    Else
    'Conversion from HEX string to Binary string
    recGlobal.Bookmark = objMain.HexToBookmark(StartLocation)
    If ReadPriorRows Then
    recGlobal.MovePrevious
    Else
    recGlobal.MoveNext
    End If
    End If
    For Rcount = 0 To RowBuf.RowCount - 1
    If recGlobal.BOF Or recGlobal.EOF Then Exit For
    Select Case (RowBuf.ReadType)
    Case 0
    For Rcounter = 0 To RowBuf.ColumnCount - 1
    RowBuf.Value(Rcount, Rcounter) = recGlobal(Grid.Columns(Rcounter).Name).Value
    Next Rcounter
    RowBuf.Bookmark(Rcount) = objMain.BookmarkToHex(recGlobal.Bookmark)
    Case 1
    RowBuf.Bookmark(Rcount) = objMain.BookmarkToHex(recGlobal.Bookmark)
    Case 2
    RowBuf.Value(Rcount, Rcounter) = recGlobal(Grid.Columns(Rcounter).Name).Value 'recGlobal(Rcounter).Value
    RowBuf.Bookmark(Rcount) = objMain.BookmarkToHex(recGlobal.Bookmark)
    Case 3
    End Select
    If ReadPriorRows Then
    recGlobal.MovePrevious
    Else
    recGlobal.MoveNext
    End If
    Rcnt = Rcnt + 1
    Next Rcount
    RowBuf.RowCount = Rcnt
    ExitGridStreetSectorUnboundReadData:
    Exit Sub
    ErrorGridStreetSectorUnboundReadData:
    Dim ErrNum As Long, ErrDesc As String
    ErrNum = objMain.GetLastError(Err.Number)
    Select Case ErrNum
    Case 3021
    Case 40088: Grid.ReBind 'No open cursor
    Case 40022 'Resultset is empty
    Case Else
    ErrDesc = objMain.GetLastErrorDesc(Err.Description)
    MsgBox ErrNum & " : " & ErrDesc, CriticalFlag, Msg(1)
    End Select
    Resume ExitGridStreetSectorUnboundReadData:
    End Sub
    Here is the code for the HexToBookmark and BookmarkToHex functions we use:
    Private Function Mainfunctions_HexToBookmark(ByVal S As Variant) As Variant
    Dim I As Integer, STmp As Variant
    If IsNull(S) Then Exit Function
    For I = 1 To Len(S) Step 2
    STmp = STmp & Chr(Val("&h" & Mid(S, I, 2)))
    Next
    Mainfunctions_HexToBookmark = STmp
    End Function
    Private Function Mainfunctions_BookmarkToHex(ByVal S As Variant) As Variant
    Dim I As Integer, H As String, STmp As Variant
    For I = 1 To Len(S)
    H = Hex(Asc(Mid(S, I, 1)))
    If Len(H) = 1 Then H = "0" & H
    STmp = STmp & H
    Next
    Mainfunctions_BookmarkToHex = STmp
    End Function
    Now we need to make our application run on Oracle 9i (patchset 9204) (with oraoledb 9.2.0.4.0 and oo4o 9.2.0.4.8) and our Sheridan Grid in unbound mode seems to work fine, except that after some time I reexecute the query to refresh the grid I get an invalid bookmark error message (OIP.4121) and only 10 records from the recordset are displayed even if the recordcount is greater.
    Anything that can help solve this somehow weird problem is welcome.
    Thanks

    I don't see any recent bugs (newer than 8.1) against Sheridan's grid. I assume you are on the most recent release of their grid control as well?

  • [Oracle][ODBC][Ora]ORA-01017: invalid username/password; logon denied

    ---cmd prompt------------------------
    H:\>sqlplus scott/tiger
    SQL*Plus: Release 10.2.0.3.0 - Production on Sun Mar 28 16:54:53 2010
    Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
    Connected to:
    Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
    With the Partitioning, OLAP and Data Mining options
    SQL>
    -------------ASP -------------------------
    <%@ Language="JScript" %>
    <%
         var uname=Request.Form("un");
         var upwd=Request.Form("pwd");
         Response.Write("User Name is " + uname + "<br>" + "password is " + upwd);
         var sql = "select * from emp";
         var conn = Server.CreateObject("ADODB.Connection");
         var rs = Server.CreateObject("ADODB.Recordset");
         conn.Open = "Driver={Oracle in OraDb10g_home1};DBQ=tcp;UID='uname';PWD='upwd';";
         rs.Open(sql, conn, 3, 3);
    %>
    ------------------Error------------------
    User Name is scott
    Password is tiger
    Microsoft OLE DB Provider for ODBC Drivers error '80040e4d'
    [Oracle][ODBC][Ora]ORA-01017: invalid username/password; logon denied
    /prc/main.asp, line 11
    variable uname has valid username that is 'scott' and variable upwd as valid password ie 'tiger' both entered by the user.
    with the same username and password i am able to connect to the database from the command prompt.
    but when i tried using odbc through ASP(javascript) i am getting above error.
    and one more thing if i mention username and password directly in UID and PWD it works but when i pass it through variables it wont work.
    since variables have username and password it has to take from it directly...........manually i cant give,dynamically it has to take.
    plz help me out....how i can pass the parameter to that UID and PWD.
    conn.Open = "Driver={Oracle in OraDb10g_home1};DBQ=tcp;UID='uname';PWD='upwd';";
    help plz
    conn.Open = "Driver={Oracle in OraDb10g_home1};DBQ=tcp;UID='uname';PWD='upwd';"; --- does not work
    conn.Open = "Driver={Oracle in OraDb10g_home1};DBQ=tcp;UID=scott;PWD=tiger;"; --- works
    but i want the 1st statement to work........since user gives the password and username dynamically.
    Thanks
    Veeresh S

    conn.Open("DSN=tcp;UID="+uname+";PWD="+upwd+";");
    this solved me
    thanks for all who had vied this..
    veeresh

  • [Microsoft][ODBC SQL Server Driver]Invalid character value for cast specifi

    [Microsoft][ODBC SQL Server Driver]Invalid character value for cast specification
    An you help me with this error?
    This is the problemativ query:
    Search QUERY : SELECT DISTINCT theK_files.fileid, theK_files.name, theK_files.t
    itle, theK_files.description, theK_users1.name AS AuthorName, theK_users1.surn
    ame AS AuthorSurname, [theK_file-extensions].name AS Extension, theK_files.publ
    ished, theK_files.updated FROM theK_users INNER JOIN [theK_users-to-groups] ON
    theK_users.userid = [theK_users-to-groups].userid INNER JOIN theK_usergroups
    ON [theK_users-to-groups].groupid = theK_usergroups.groupid INNER JOIN [theK_g
    roups-to-files] ON theK_usergroups.groupid = [theK_groups-to-files].groupid INN
    ER JOIN theK_files ON [theK_groups-to-files].fileid = theK_files.fileid INNER
    JOIN theK_users theK_users1 ON theK_files.authorid = theK_users1.userid INNER
    JOIN [theK_file-extensions] ON theK_files.extensionid = [theK_file-extensions]
    .extensionid WHERE theK_users.userid = '1' AND theK_files.extensionid = '1' AN
    D ( theK_files.name LIKE '%a%' OR theK_users1.name LIKE '%a%' OR theK_files.de
    scription LIKE '%a%' )

    are these columns character/string/varchar:
    theK_users.userid = '1'
    theK_files.extensionid = '1'
    if these are number columns, change them to
    theK_users.userid = 1
    theK_files.extensionid = 1
    Jamie

  • [Oracle][ODBC][Ora]ORA-24801: illegal parameter value in OCI lob function

    Hi,
    I am trying to insert an xml doc into a column of Oracle table which has a datatype CLOB in JSP. PFB my code that I am using --
    int id = 100;
    String st1 = "NEW";
    String st2 = "WLR3_IN_1";
    Date dt = new SimpleDateFormat("mm/dd/yyyy").parse("04/02/2008");
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    con = DriverManager.getConnection("jdbc:odbc:CST Server","xmluser","xmluser");
    String query = "INSERT INTO SEQ_API_MESSAGE_IN(SEQ_NO,MESSAGE_TEXT,STATUS,DIALECT,CREATED_TS) VALUES(?,?,?,?,?)";
    out.println(6);
    String fn = "C:/order.xml";
    out.println(7);
    PreparedStatement stmt = con.prepareStatement(query);
    out.println(8);
    File file = new File(fn);
    out.println(9);
    FileReader inputFileReader = new FileReader(file);
    stmt.setInt(1,id);
    stmt.setCharacterStream(2,inputFileReader, (long)file.length());
    stmt.setString(3,st1);
    stmt.setString(4,st2);
    stmt.setDate(5,new java.sql.Date(dt.getTime()));
    out.println(10);
    if (stmt.executeUpdate() != 1) {
    System.out.println("No record inserted.");
    But I am getting an output in the form of an Oracle error - 5 6 7 8 9 10 [Oracle][ODBC][Ora]ORA-24801: illegal parameter value in OCI lob function
    So all the statements are getting executed after which this Oracle error is thrown. Could you help me with this.
    Thanks in anticipation.. :)

    As suggested I may try switching to JDBC instead of JDBC-ODBC bridge driver , but I also tried doing this to get the sysdate --
    //Date dt = new SimpleDateFormat("mm/dd/yyyy").parse("04/02/2008");
    String date = DateFormat.getInstance().format(new Date());
    stmt.setString(5,date);
    and now I am getting this error -- 5 6 7 8 9 10 [Oracle][ODBC][Ora]ORA-01843: not a valid month Hello1
    Hello1 is coming from --
    catch (SQLException sqle){
    out.println(sqle.getMessage());
    out.print("Hello1");
    }

  • Decimal values truncated from SQL Call through Oracle ODBC

    Hi
    I'm using Oracle ODBC driver v 9.02.00.06; when I make a SQL call to query data from the Oracle ERP (PO_Lines_All), my decimal values are truncated. Instead of getting 112.25, I only get 112
    Can someone help me fix this problem?
    thanks

    The problem is commonly related to a language difference between Oracle and SQL Server.
    Try setting HS_LANGUAGE=american_america.we8mswin1252 in the intialisatuion file of HSODBC.
    Then start a new SQL*Plis session and give it a try.
    If you still have problems, set it to:
    HS_LANGUAGE=german_germany.we8mswin1252 in the

  • [Oracle][ODBC] Option value changed??????

    I'm building an application in which I use different sql queries depending on the value of JChoice. When I change this value I get the message java.sql.Exception: [Oracle][ODBC] Option value changed.
    Nothing happens..... What could be the probable cause of this?
    Frits

    Ok, here some code.....I hope it is enough...
    The Problem is that as soon as soort becomes "NRC", the code below it is not being entered.....
    if (soort=="NRC") { 
    connectiearbnrc = window.geefConnectiearb();
    statementarbnrc = connectiearbnrc.prepareStatement(gekozenarbq,resultsetarbnrc.TYPE_SCROLL_INSENSITIVE,resultsetarbnrc.CONCUR_READ_ONLY );
    statementarbnrc.setString(1,tklant.getText());
    statementarbnrc.setString(2,telement.getText());
    statementarbnrc.setString(3,alles);
    resultsetarbnrc = statementarbnrc.executeQuery();
    meta = resultsetarbnrc.getMetaData();
    cols = meta.getColumnCount();
    resultsetarbnrc.last();
    rows=resultsetarbnrc.getRow(); System.out.println(rows + " " + cols + " " + resultsetarbnrc.getString("ELEMENT_ID"));
    resultsetarbnrc.first();
    data = new Object [rows][cols];
    for (int u = 0; u < rows; u++) {
    data[0]=resultsetarbnrc.getString("EX");
    data[u][1]=resultsetarbnrc.getString("TYPE_ID_NRC");
    data[u][2]=resultsetarbnrc.getString("DES");
    data[u][3]=resultsetarbnrc.getString("EFF_DT");
    resultsetarbnrc.next();
    Frits

  • Crystal Report Oracle ODBC driver invalid Thai character display problem

    Hi,
       My server has CR Oracle ODBC 5.1 installed on last week. We have several reports in the servers which called by our Application to export to text file and pdf file. Sometimes, the output (both text file and pdf file) can't display Thai character correctly. The text file show Thai character in question mark and pdf file show in square box. This problem occur randomly and disappear without doing anything. Sometimes the problem occur for an hour and gone but sometimes occur 10-15 minutes and gone. This problem also not happen every days. Once the problem occur, all reports with Thai character will fail.
       However, we have another server installed the same Application, same OS level, same OS patches and same CR Oracle ODBC driver version installed on the same time as above server (the problem server). This server does not have any problems.
       Any suggestions would be appreciated.
    Best Regards,
    Noppadon S.

    Hi Noppadon,
    Thank you for the info. If it happens randomly in their application then it's something they need to debug. Could even be in the ODBC driver.
    I suggest you tell them that because it works sometimes it shows the issue is likely in their software because if it failed all the time then it would be in Crystal dll's. They need to debug the problem, suggest they use tools like Process Monitor from www.sysinternals.com to step through to see where or what part is failing. If they having logging abilities that may help to find out what step is failing and in which API.
    At this point we have no way of determining where the problem is, it's failing in their application and no one but them know what or how they are using CR runtime files.
    If you can duplicate the problem using Crystal Report Designer then it's our problem, if not they have to help you to show us it is a CR issue.
    Sorry we can't be of more help but without know their code we can't suggest anything to try. Suggest they log a call with support here to help them debug the problem if they don't know what to do.
    Thank you
    Don

  • Oracle ODBC error when inserting "end" or "begin"

    I think I may have found a bug in the Oracle ODBC driver....
    I am using version 8.01.73.00 of the Oracle ODBC driver, and my VB application is trying to insert a record into a table using ADO. All works fine, until the user tries to enter the word "end", or "begin" into any of the text (CLOB) fields. The following code shows how I am doing an insert:
    Dim cmd As ADODB.Command
    Set cmd = New ADODB.Command
    cmd.ActiveConnection = "DSN=Envoy;uid=Envoy;pwd=significance;"
    cmd.CommandText = "Insert into Mon_Reading (Creation_User, Creation_Date, Reading_Date, Param_ID, Mon_ID, Value, ApplicableYN, Site_ID, Prev_MEter_Value, MeterResetYN, UOM_ID, LimitsApplicableYN, Lower, Upper, Limit_UOM_ID, ApprovedYN, Comments ) Values ('Matttt', '01-jan-2002', '01-jan-2003', 1, 1, 1., 'Y', 1, 0, 'N', 1, 'N', 0, 0, 0, 'Y', ' end ');"
    cmd.CommandType = adCmdText
    cmd.Execute , , adExecuteNoRecords
    As you can see, the text " end " is being added to the comments field, a CLOB data field. When executed, this causes an Oracle ORA-0911 error (invalid character), and the insert fails.
    Heres the weird thing - if you change the word "end" to anything else apart from "begin" - it will work!!! Also, it only fails if you wrap the "end" in spaces?!!?!! Users that reported this were entering comments like "this is the end of June" - this would have caused the error. If you copy teh failed SQL and paste it into SQLPlus, it executes OK.
    I can only presume this is an Oracle bug. Anyone else have an ideas? What can I do as a workaround?

    First thought would be to grab the updated 8.1.7.x ODBC driver (8.1.7.7 IIRC). Perhaps this problem has already been solved.
    Justin

  • Oracle ODBC driver with Access Application

    I get a problem when using MS-Access 2007 DAO recordset built on table hosted by an Oracle database 10g and connected thru ODBC
    The table scheme is :
    idPartenaire : number(11)
    libelle : varchar2(250)
    code : varchar2(5)
    actif : number(1)
    idCollege :numner(11)
    idPartenaire is generated by a sequence read in a trigger fired before insert on th table.
    The code I use in Access is :
    The query associated with the form is :
    "select * from table1"
    and the event procedure connected to a button on the form is :
    Private Sub Commande0_Click()
    Dim rs As DAO.Recordset
    Me.Recordset.AddNew
    Me.Recordset!libelle = CStr(Rnd) ' some value
    Me.Recordset!code = “”
    Me.Recordset!actif = -1
    Me.Recordset!idCollege = 1
    Me.Recordset.Update
    Me.Recordset.Bookmark = Me.Recordset.LastModified
    Dim idtemp As Long
    idtemp = Me.Recordset.idPartenaire
    Me.Requery
    Me.Recordset.FindFirst "idPartenaire = " & idtemp
    Set rs = Nothing
    End Sub
    When I run this code, I get an error 3167 (current record is deleted) on the line :
    idtemp = Me.Recordset.idPartenaire
    If I change the ligne :
    Me.Recordset!code = “”
    By :
    Me.Recordset!code = “xxxx”
    or if I comment this line, the error does not appear and I get the right value in idtemp variable.
    I tried also with the same table in a SQL Server database table. In this case it works fine in all cases.
    So, I seems that the problem is due to the Oracle ODBC driver. I tried with different versions of Oracle ODBC drivers (v10.0.2.4, v11.1.6)
    I search on Internet but I have not found any explanation or solution.
    Does anybody experiment the same problem (and find a solution)?
    Gilles Roussel.

    The two lines you quote aren't errors, they're warnings and they're pretty standard fare. If there isn't anything else in the ODBC log, then the driver isn't returning any errors. I'm not sure why Access is failing, so let's look at the client configuration first.
    - I assume you've successfully installed the 8.1.6 client on the machine with Access. Were there any errors during the install?
    - You say you're using the 8.1.6 version of the Oracle ODBC driver-- can you look to see what the last digit of the version is? If possible, I'd start by downloading the most recent 8.1.6.x ODBC driver from OTN.
    - Check which version of the MDAC you have installed (new versions & a version checker are available from Microsoft at <http://www.microsoft.com/data>.
    - The ODBC driver you download above will list which versions of the MDAC it is expected to work with. Make sure your version is one of the listed versions.
    Justin

  • Invalid parameter value Error while Extending PoReqDistributionsVO

    Hi,
    My Requirement is to restrict user from enetring certain values in a field in iProcurement Page based on some condition. The attribute on which I have to place the validation is CodeCombinationId and the VO name is PoReqDistributionsVO. So, I extended the VO and generated the VORowImpl class for the extended VO. Please note that I have extended the VO just to override the setter method for the CodeCombinationId in the VORowImpl. I did not change any other thing on the VO. Once I deploy the code, I am getting the following error for the first time:
    ## Detail 0 ##
    oracle.jbo.InvalidParamException: JBO-25006: Invalid parameter value PoReqDistributionsVO for source passed to method ViewLinkImpl.setSource. Explanation: view def mismatch
    And then if I try to open the page again, it gives me multiple distribution lines. (Say for example I have only one distribution line for the requistion line and my distribution table PO_REQ_DISTRIBUTIONS_ALL has total 20 records, then all the 20 records are getting displayed in the front end.)
    So, clearly after I extended the VO, the viewlink is not able to identify the viewlink.
    I went through the following thread:
    oracle.jbo.InvalidParamException: JBO-25006: Invalid parameter value
    As suggested in the therad, I thought of copying all the view link related methods from the original VO files. But, I could not get any Viewlink related information in any of the three seeded files PoReqDistributionsVO.xml, PoReqDistributionsVOImpl.class and PoReqDistributionsVORowImpl.class. But I can find one View Link oracle.apps.icx.por.req.server.ReqLineToDistributionsVL in teh server which is linking PoRequisitionLinesVO to PoReqDistributionsVO.
    Could anyone suggest me what I need to do to resolve the issue.
    Edited by: 892480 on Oct 20, 2011 8:13 AM

    Hi Gurus,
    Any suggestion on the above issue?

  • [Oracle][ODBC SQL Server Driver][libssclient22]General network error

    I am using oracle gateway (11.1) for sqlserver on Linux platform with Oracle Server 10g.
    I am getting following error when i run any select query:
    ORA-28500: connection from ORACLE to a non-Oracle system returned this message:
    [Oracle][ODBC SQL Server Driver][libssclient22]General network error. Check your network documentation.[Oracle][ODBC SQL Server Driver][libssclient22]ConnectionOpen (connect()).[Oracle][ODBC SQL Server Driver]Invalid connection string attribute
    ORA-02063: preceding 2 lines from SQLSERVER
    Another thing is, i have created a ODBC DSN named as "sqlserver" as well. This configuration works fine when "program" parameter is set to dg4odbc in Listener.ora. But with dg4msql, it gives error.
    Followings are the configuration files:
    initsqlserver.ora
    # HS init parameters
    HS_FDS_CONNECT_INFO=database_machine:1433//test_master
    HS_FDS_TRACE_LEVEL=OFF
    HS_FDS_RECOVERY_ACCOUNT=RECOVER
    HS_FDS_RECOVERY_PWD=RECOVER
    listener.ora
    SID_LIST_sqlserver =
    (SID_LIST =
    (SID_DESC =
    (SID_NAME = sqlserver)
    (ORACLE_HOME = /u01/app/oracle/product/11.1.0.6.0/gateway)
    (PROGRAM = dg4msql)
    sqlserver =
    (DESCRIPTION_LIST =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = Server_Machine )(PORT = 1522))
    (ADDRESS = (PROTOCOL = IPC)(KEY = PNPKEY))
    tnsnames.ora
    SQLSERVER =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = Server_Machine)(PORT = 1522))
    (CONNECT_DATA =
    (SID = sqlserver)
    (HS = OK)
    )

    Hi,
    The error you get is because your HS_FDS_CONNECT_STRING is not correct:
    Be sure you can ping the SQL SERVER name from the Oracle Server,or use TCP/IP address
    Check the port, it is not necessary 1433.
    You can use the instance name insted of port:
    HS_FDS_CONNECT_STRING=server_ip_address/instance_name/database_name
    Be careful, in the LISTENER.ORA, you must specify the Gateway machine and not the SQL SERVER machine:
    sqlserver =
    (DESCRIPTION_LIST =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = Gateway_Machine )(PORT = 1522)) <====you must specify Oracle Gateway machine
    (ADDRESS = (PROTOCOL = IPC)(KEY = PNPKEY))
    Idem for TNSNAMES.ORA:
    SQLSERVER =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = Gateway_Machine)(PORT = 1522))
    (CONNECT_DATA =
    (SID = sqlserver)
    (HS = OK)
    Regards
    Mireille

  • Couldn't export schema because of invalid argument value and other errors.

    Hello, All.
    I am using an oracle 10g database, which is running on a Redhat9 linux server, to manage our lab information.
    I plan to export a schema (only tables, not the real data) into a file.
    First, I used the Enterprise Manager to export. I went through and complete the export job. After submitting, the system says:
    There is a problem writing to the export files: ORA-39094: Parallel execution not supported in this database edition..
    So I just copy the PL/SQL code which would be send to the source database and comment the set_parallel procedure.
    The code is listed here:
    declare
    h1 NUMBER;
    begin
    begin
    h1 := dbms_datapump.open (operation => 'EXPORT', job_mode => 'SCHEMA', job_name => 'EXPORT000468', version => 'COMPATIBLE');
    end;
    --begin
    --dbms_datapump.set_parallel(handle => h1, degree => 1);
    --end;
    begin
    dbms_datapump.add_file(handle => h1, filename => 'EXPDAT.LOG', directory => 'DATA_FILE_DIR', filetype => 3);
    end;
    begin
    dbms_datapump.set_parameter(handle => h1, name => 'KEEP_MASTER', value => 0);
    end;
    begin
    dbms_datapump.metadata_filter(handle => h1, name => 'SCHEMA_EXPR', value => 'IN(''FLOWLIMS'')');
    end;
    begin
    dbms_datapump.set_parameter(handle => h1, name => 'ESTIMATE', value => 'BLOCKS');
    end;
    begin
    dbms_datapump.add_file(handle => h1, filename => 'EXPDAT%U.DMP', directory => 'DATA_FILE_DIR', filetype => 1);
    end;
    begin
    dbms_datapump.set_parameter(handle => h1, name => 'INCLUDE_METADATA', value => 1);
    end;
    begin
    dbms_datapump.data_filter(handle => h1, name => 'INCLUDE_ROWS', value => 0);
    end;
    begin
    dbms_datapump.set_parameter(handle => h1, name => 'DATA_ACCESS_METHOD', value => 'AUTOMATIC');
    end;
    begin
    dbms_datapump.start_job(handle => h1, skip_current => 0, abort_step => 0);
    end;
    begin
    dbms_datapump.detach(handle => h1);
    end;
    end;
    I paste the code in an SQL*Plus session and execute it. The system says:
    declare
    ERROR at line 1:
    ORA-39001: invalid argument value
    ORA-06512: at "SYS.DBMS_SYS_ERROR", line 79
    ORA-06512: at "SYS.DBMS_DATAPUMP", line 2486
    ORA-06512: at "SYS.DBMS_DATAPUMP", line 2718
    ORA-06512: at line 23
    I am not very sure which part is wrong for I have exported another schema successfully using this method just now.
    Any advice is highly appreciated!
    Qian

    Well, I will list more details about how to complete the job here.
    1) Go to the Enterprise Manager, log in as FLOWLIMS (I just want to export the schema FLOWLIMS)
    2)Go to the "Maitenance"
    3)Under the "Utilities", select the "Export to files"
    4)in the next page: Export: Export Type, select "Schemas"
    5) in the next page, select the schema "FLOWLIMS"
    6) in the next page, select these parameters:
    Maximam Number of Threads in Export job: 1
    Estimate Disk Space: Blockes
    7) when I click the "Estimate Disk Space Now", it says :
    Export Estimate Failed
    There is a problem writing to the export files: ORA-39094: Parallel execution not supported in this database edition..
    8) So I give up extimating
    9) Other options:
    I select "Generate Log file"
    The Directory Object is the default value "DATA_FILE_DIR"
    The Log File is the default value "EXPDAT.LOG"
    10) the advanced options are like these:
    Content: What to export from the Source Database: "Metadata only"
    Export content: "include all objects"
    Flashback: select "As the specified System Change Number (SCN)
    SCN: just accept the default number 28901412
    Query: select nothing. I need all fields of all tables.
    11) in the next page, I accept the default directory object "DATA_FILE_DIR" and the default File Name "EXPDAT%U.DMP". The Maximam File Size is blank, I just leave it blank.
    12) in the next page "Schedule" , I select to start the job immediatly.
    13) in the next page "Review", it shows:
    Export Type          Schemas
    Statistics type          Estimate optimizer statistics when data is imported
    Parallelism          1
    Files to Export          DATA_FILE_DIR EXPDAT%U.DMP
    Log File          DATA_FILE_DIR EXPDAT.LOG
    and the PL/SQL is like that:
    declare
    h1 NUMBER;
    begin
    begin
    h1 := dbms_datapump.open (operation => 'EXPORT', job_mode => 'SCHEMA', job_name => 'EXPORT000487', version => 'COMPATIBLE');
    end;
    begin
    dbms_datapump.set_parallel(handle => h1, degree => 1);
    end;
    begin
    dbms_datapump.add_file(handle => h1, filename => 'EXPDAT.LOG', directory => 'DATA_FILE_DIR', filetype => 3);
    end;
    begin
    dbms_datapump.set_parameter(handle => h1, name => 'KEEP_MASTER', value => 0);
    end;
    begin
    dbms_datapump.metadata_filter(handle => h1, name => 'SCHEMA_EXPR', value => 'IN(''FLOWLIMS'')');
    end;
    begin
    dbms_datapump.set_parameter(handle => h1, name => 'ESTIMATE', value => 'BLOCKS');
    end;
    begin
    dbms_datapump.add_file(handle => h1, filename => 'EXPDAT%U.DMP', directory => 'DATA_FILE_DIR', filetype => 1);
    end;
    begin
    dbms_datapump.set_parameter(handle => h1, name => 'INCLUDE_METADATA', value => 1);
    end;
    begin
    dbms_datapump.data_filter(handle => h1, name => 'INCLUDE_ROWS', value => 0);
    end;
    begin
    dbms_datapump.set_parameter(handle => h1, name => 'DATA_ACCESS_METHOD', value => 'AUTOMATIC');
    end;
    begin
    dbms_datapump.start_job(handle => h1, skip_current => 0, abort_step => 0);
    end;
    begin
    dbms_datapump.detach(handle => h1);
    end;
    end;
    14) after I click the "submit" , it shows:
    Export Submit Failed
    There is a problem writing to the export files: ORA-39094: Parallel execution not supported in this database edition..
    15) I copy the PL/SQL, comment this part:
    --begin
    --dbms_datapump.set_parallel(handle => h1, degree => 1);
    --end;
    I run it in an iSQL*Plus Release 10.1.0.2,
    It shows:
    declare
    ERROR at line 1:
    ORA-39001: invalid argument value
    ORA-06512: at "SYS.DBMS_SYS_ERROR", line 79
    ORA-06512: at "SYS.DBMS_DATAPUMP", line 2486
    ORA-06512: at "SYS.DBMS_DATAPUMP", line 2718
    ORA-06512: at line 23
    Could anybody help? Thanks a lot!
    Qian

  • Insert into CLOB fails with Oracle ODBC driver version 9.02.00.65

    I tried to insert into CLOB using the latest Oracle ODBC driver 9.02.00.65 and it fails. But the same works with earlier versions of ODBC driver earlier to 9.02.00.65 ie., 9.02.00.63.
    Here is the code snippet I tried. Any help now is highly appreciated as I am in the crunch time.
    I tried the same code snippet with VARCHAR2 column with the same driver and it works.
    ** CONVDSN.C - This is the ODBC sample code for
    ** creating File DSN pointers to machine DSNs.
    **This code is furnished on an as-is basis as part of the ODBC SDK and is
    **intended for example purposes only.
    #include <windows.h>
    #include <stdio.h>
    #include <tchar.h>
    #include <sql.h>
    #include <sqlext.h>
    #include <odbcinst.h>
    #include <sqltypes.h>
    #define MAXDATALEN 25 //maximum data length per column
    #define MAX_COL 15 //maximum column in result set
    #define MAX_ROW 100 //maximum number of rows
    #define MAXBUFLEN 256
    #define SQLERR_FORMAT "SQL Error State:%s, Native Error Code: %lX, ODBC Error: %s"
    #define MAXDISPLAYSIZE MAX_COL*(MAXDATALEN+1)
    #define SQLWRNMSGTITLE "SQL_SUCCESS_WITH_INFO results"
    #define SQLERRCNTDTITLE "SQL_ERROR results continued"
    #define SQLWRNMSGTITLE "SQL_SUCCESS_WITH_INFO results"
    #define SQLWRNCNTDTITLE "SQL_SUCCESS_WITH_INFO results continued"
    #define NULLDATASTRING "SQL_NULL_DATA"
    #define SQLERRMSGTITLE "SQL_ERROR results"
    // prototypes
    void ExpandFileName(LPSTR szFileDSNName, LPCSTR szDSNName);
    void MakeLegalName(LPSTR szLegalDSNName, LPCSTR szDSNName);
    // main routine: Iterate through the user and system DSNs, creating a pointer
    // to each.
    void FAR PASCAL DisplayError(SQLRETURN nResult, HWND hWnd, SWORD fHandleType, SQLHANDLE handle);
    void insertSelectClob();
    void checkRcCode(RETCODE rc);
    int main (int argc, char* argv[])
         insertSelectClob();
    return 0;
    void FAR PASCAL DisplayError(SQLRETURN nResult, HWND hWnd, SWORD fHandleType, SQLHANDLE handle)
         UCHAR szErrState[SQL_SQLSTATE_SIZE+1]; // SQL Error State string
         UCHAR szErrText[SQL_MAX_MESSAGE_LENGTH+1]; // SQL Error Text string
         char szBuffer[SQL_SQLSTATE_SIZE+SQL_MAX_MESSAGE_LENGTH+MAXBUFLEN+1];
         // formatted Error text Buffer
         SWORD wErrMsgLen; // Error message length
         UDWORD dwErrCode; // Native Error code
         int iSize; // Display Error Text size
         SQLRETURN nErrResult; // Return Code from SQLGetDiagRec
         SWORD sMsgNum = 1;
         SWORD fFirstRun = TRUE;
         char szDispBuffer[MAXDISPLAYSIZE+1]; // Display Buffer
         szBuffer[0] = '\0';
         do
              // continue to bring messageboxes till all errors are displayed.
              // more than one message box may be reqd. as err text has fixed
              // string size.
              // initialize display buffer with the string in error text buffer
              strcpy(szDispBuffer, szBuffer);
              // call SQLGetDiagRec function with proper ODBC handles, repeatedly until
              // function returns SQL_NO_DATA. Concatenate all error strings
              // in the display buffer and display all results.
              while ((nErrResult = SQLGetDiagRec(fHandleType, handle, sMsgNum++,
                   szErrState, &dwErrCode, szErrText,
                   SQL_MAX_MESSAGE_LENGTH-1, &wErrMsgLen)) != SQL_NO_DATA)
                   if(nErrResult == SQL_ERROR || nErrResult == SQL_INVALID_HANDLE)
                   break;
                   wsprintf(szBuffer, SQLERR_FORMAT, (LPSTR)szErrState, dwErrCode, (LPSTR)szErrText);
                   iSize = strlen(szDispBuffer);
                   if (iSize && (iSize+strlen(szBuffer)+1) >= MAXDISPLAYSIZE)
                   break;
                   if (iSize)
                   strcat(szDispBuffer, "\n");
                   strcat(szDispBuffer, szBuffer);
              // display proper ERROR or WARNING message with proper title
              if (nResult == SQL_SUCCESS_WITH_INFO)
                   MessageBox(hWnd, szDispBuffer, (fFirstRun? SQLWRNMSGTITLE : SQLWRNCNTDTITLE),
                   MB_OK | MB_ICONINFORMATION);
              else
                   MessageBox(hWnd, szDispBuffer, (fFirstRun? SQLERRMSGTITLE : SQLERRCNTDTITLE),
                   MB_OK | MB_ICONEXCLAMATION);
              if (fFirstRun)
                   fFirstRun = FALSE;
         while (!(nErrResult == SQL_NO_DATA || nErrResult == SQL_ERROR || nErrResult == SQL_INVALID_HANDLE));
    void insertSelectClob()
    SQLCHAR clobdata[1001];
    SQLCHAR resultdata[1001];
    SQLINTEGER ind = SQL_DATA_AT_EXEC;
    SQLCHAR *bufp;
         SQLINTEGER cbOrderID = sizeof(SQLSMALLINT);
         SQLSMALLINT sTmp=13;
         SQLCHAR *sqlStmt1  = _T("INSERT INTO clobtbl(id, clob1) VALUES(?, ?)");
         SQLCHAR *sqlStmt2  = _T("SELECT id, clob1 FROM clobtbl");
    //     SQLCHAR *sqlStmt1  = _T("INSERT INTO testInsert(id, clob1) VALUES(?, ?)");
    // SQLCHAR *sqlStmt2  = _T("SELECT id, clob1 FROM testInsert");
    int clobdatalen, chunksize, dtsize, retchklen;
         HENV envHnd;
    HDBC conHnd;
    HSTMT stmtHnd;
    RETCODE rc;
         int nRowcnt=0;
         SQLPOINTER pToken = NULL;
    rc = SQL_SUCCESS;
    // ENV is allocated
    rc = SQLAllocEnv(&envHnd);
    // Connection Handle is allocated
    rc = SQLAllocConnect(envHnd, &conHnd);
    rc = SQLConnect(conHnd, T("testd734"), SQLNTS, T("ipathdba"), SQLNTS, T("ipathdba"), SQLNTS);
    printf(_T("Insert CLOB1 using SQLPutData...\n[%s]\n"), sqlStmt1);
    // Set CLOB Data
    int i;
    SQLCHAR ch;
    for (i=0, ch=_T('A'); i< sizeof(clobdata)/sizeof(SQLCHAR); ++i, ++ch)
    if (ch > _T('Z'))
    ch = _T('A');
    clobdata[i] = ch;
    clobdata[sizeof(clobdata)/sizeof(SQLCHAR)-1] = _T('\0');
    clobdatalen = lstrlen(clobdata); // length of characters
    chunksize = clobdatalen / 7; // 7 times to put
         rc = SQLAllocHandle(SQL_HANDLE_STMT, conHnd, &stmtHnd);
    // Step 1: Prepare
    rc = SQLPrepare(stmtHnd, sqlStmt1, SQL_NTS);
    // checkSQLErr(envHnd, conHnd, stmtHnd, rc);
    // Step 2: Bind Parameter with SQL_DATA_AT_EXEC
    rc = SQLBindParameter(stmtHnd,
    1,
    SQL_PARAM_INPUT,
    SQL_C_SSHORT,
    SQL_INTEGER,
    0,
    0,
    &sTmp,
    0,
    &cbOrderID);
    rc = SQLBindParameter(stmtHnd,
    2,
    SQL_PARAM_INPUT,
    SQL_C_CHAR,
    SQL_LONGVARCHAR,
    clobdatalen*sizeof(CHAR),
    0,
    (SQLPOINTER)clobdata,
    clobdatalen*sizeof(CHAR),
    &ind);
    // checkSQLErr(envHnd, conHnd, stmtHnd, rc);
    // Step 3: Execute
    rc = SQLExecute(stmtHnd);
         while (rc == SQL_NEED_DATA) {
              rc = SQLParamData(stmtHnd, &pToken);
              if (rc == SQL_NEED_DATA) {
                   for (dtsize=0, bufp = clobdata;
                        dtsize < clobdatalen;
                        dtsize += chunksize, bufp += chunksize)
                   int len;
                   if (dtsize+chunksize < clobdatalen)
                        len = chunksize;
                        rc = SQLPutData(stmtHnd, bufp, len*sizeof(SQLCHAR));
                   else
                        len = clobdatalen-dtsize;
                        rc = SQLPutData(stmtHnd, bufp, SQL_NTS);
              rc = SQLParamData(stmtHnd, &pToken);
    // Fails as row count retrieved is zero.
         rc = SQLRowCount(stmtHnd, &nRowcnt);
         if(rc != SQL_SUCCESS)
              DisplayError(rc, NULL, SQL_HANDLE_ENV, conHnd);
    rc = SQLFreeStmt(stmtHnd, SQL_CLOSE);
    printf(_T("Finished Update\n\n"));
    rc = SQLAllocStmt(conHnd, &stmtHnd);
    if (rc != SQL_SUCCESS)
    printf(_T("Failed to allocate STMT\n"));
    exit(-1);
    // Clear Result Data
    memset(resultdata, 0, sizeof(resultdata));
    chunksize = clobdatalen / 15; // 15 times to gut
    rc = SQLExecDirect(stmtHnd, sqlStmt2, SQL_NTS); // select
         if(rc != SQL_SUCCESS)
              DisplayError(rc, NULL, SQL_HANDLE_ENV, conHnd);
    // Step 2: Fetch
    rc = SQLFetch(stmtHnd);
    for(dtsize=0, bufp = resultdata;
    dtsize > sizeof(resultdata)/sizeof(CHAR) && rc != SQL_NO_DATA;
    dtsize += chunksize-1, bufp += chunksize-1)
    int len; // len should contain the space for NULL termination
    if (dtsize+chunksize<sizeof(resultdata)/sizeof(CHAR))
    len = chunksize;
    else
    len = sizeof(resultdata)/sizeof(CHAR)-dtsize;
    // Step 3: GetData
    rc = SQLGetData(stmtHnd,
    2,
    SQL_C_CHAR,
    (SQLPOINTER)bufp,
    len*sizeof(CHAR),
    &retchklen);
    if (!_tcscmp(resultdata, clobdata))
    printf(_T("Succeeded!!\n\n"));
    else
    printf(_T("Failed!!\n\n"));
         if (conHnd)
              SQLFreeConnect(conHnd);
         if (envHnd)
              SQLFreeEnv(envHnd);
    }

    Hi,
    Since 9.2 has been desupported for error correction you will not be able to download that version from OTN. You should ask whoever is providing the training if their is an alternate version you can use. The only versions that you will be able to download from oracle.com is 10.2 11.1, and 11.2.

Maybe you are looking for