ORA-13349 with different tolerances

Hi
I have the following geometry:
SDO_GEOMETRY(2003, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 5, 3, 1, 2, 2, 9, 2, 1, 25, 2, 2), SDO_ORDINATE_ARRAY(577581.917, 184411.939, 577578.113, 184409.454, 577574.969, 184406.174, 577572.632, 184402.257, 577571.243, 184397.912, 577576.479, 184372.519, 577595.843, 184375.038, 577605.277, 184384.152, 577601.714, 184399.53, 577602.738, 184399.438, 577599.34, 184414.163, 577598.332, 184414.207, 577590.675, 184414.136, 577586.17, 184413.538, 577581.917, 184411.939))
I got from validate_geometry the following output:
SQL> select sdo_geom.validate_geometry(geom, 0.05) from bienfonds_tser where fid = 52375;
SDO_GEOM.VALIDATE_GEOMETRY(GEOM,0.05)
TRUE
SQL> select sdo_geom.validate_geometry(geom, 0.03) from bienfonds_tser where fid = 52375;
SDO_GEOM.VALIDATE_GEOMETRY(GEOM,0.03)
13349
SQL> select sdo_geom.validate_geometry(geom, 0.01) from bienfonds_tser where fid = 52375;
SDO_GEOM.VALIDATE_GEOMETRY(GEOM,0.01)
TRUE
Wath I don't understand: I get a valid geometry with 0.01 and 0.05, but a invalid with 0.03.
I expected that a geometry is invalid to a certain tolerance, say 0.05, and for tolerances less than 0.05 the geometry is valid.
Did I understand something wrong? Can someone explain me?
Philipp

I wonder if this is an XP platform specific bug. Can you post the results of the following three statements?
select sdo_geom.validate_geometry(
MDSYS.SDO_GEOMETRY(2003, NULL, NULL,
MDSYS.SDO_ELEM_INFO_ARRAY(1, 5, 3, 1, 2, 2, 9, 2, 1, 25, 2, 2),
MDSYS.SDO_ORDINATE_ARRAY(577581.917, 184411.939, 577578.113, 184409.454,
577574.969, 184406.174,
577572.632, 184402.257, 577571.243, 184397.912, 577576.479, 184372.519,
577595.843, 184375.038, 577605.277, 184384.152, 577601.714, 184399.53,
577602.738, 184399.438, 577599.34, 184414.163, 577598.332, 184414.207,
577590.675, 184414.136, 577586.17, 184413.538, 577581.917, 184411.939)),0.05) from dual;
select sdo_geom.validate_geometry(
MDSYS.SDO_GEOMETRY(2003, NULL, NULL,
MDSYS.SDO_ELEM_INFO_ARRAY(1, 5, 3, 1, 2, 2, 9, 2, 1, 25, 2, 2),
MDSYS.SDO_ORDINATE_ARRAY(577581.917, 184411.939, 577578.113, 184409.454,
577574.969, 184406.174,
577572.632, 184402.257, 577571.243, 184397.912, 577576.479, 184372.519,
577595.843, 184375.038, 577605.277, 184384.152, 577601.714, 184399.53,
577602.738, 184399.438, 577599.34, 184414.163, 577598.332, 184414.207,
577590.675, 184414.136, 577586.17, 184413.538, 577581.917, 184411.939)),0.03) from dual;
select sdo_geom.validate_geometry(
MDSYS.SDO_GEOMETRY(2003, NULL, NULL,
MDSYS.SDO_ELEM_INFO_ARRAY(1, 5, 3, 1, 2, 2, 9, 2, 1, 25, 2, 2),
MDSYS.SDO_ORDINATE_ARRAY(577581.917, 184411.939, 577578.113, 184409.454,
577574.969, 184406.174,
577572.632, 184402.257, 577571.243, 184397.912, 577576.479, 184372.519,
577595.843, 184375.038, 577605.277, 184384.152, 577601.714, 184399.53,
577602.738, 184399.438, 577599.34, 184414.163, 577598.332, 184414.207,
577590.675, 184414.136, 577586.17, 184413.538, 577581.917, 184411.939)),0.01) from dual;
Thanks.

Similar Messages

  • ORA-04062 error when running forms with different users

    ORA-04062 error when running forms with different users
    I have a form that has a block that should display some data from another users tables. (The other user's name is dynamic, it's selected from a list box)
    I wrote a stored procedure to get the data from other user's tables.
    When I compile the form and run it with the same user I compiled, it works without any error. But when I run the compiled form with another user I get the ORA-04062 (signature of procedure has been changed) error.
    I tried setting REMOTE_DEPENDENCIES_MODE to SIGNATURE in init.ora but it didn't help.
    My Forms version is 6i with Patch 15.
    Database version is 9.
    Here is my stored procedure:
    TYPE Scenario_Tab IS TABLE OF NUMBER(34) INDEX BY BINARY INTEGER;
    TYPE Open_Curs IS REF CURSOR;
    PROCEDURE Get_Scenarios(User_Name IN VARCHAR2, Scen_Table OUT Scenario_Tab) IS
    Curs Open_Curs;
    i NUMBER;
    BEGIN
    OPEN Curs FOR
    'SELECT Seq_No FROM '|| User_Name ||'.scenario';
    i := 1;
    LOOP
    FETCH Curs INTO Scen_Table(i);
    EXIT WHEN Curs%NOTFOUND;
    i := i + 1;
    END LOOP;
    END Get_Senarios;
    I would be happy to solve this problem. It's really important.
    Maybe somebody can tell me another way to do what I want to do. (getting a list of values from another users tables)

    I think it should be a better solution to create a package,
    and put your own TYPES and procedure into it.
    CREATE OR REPLACE PACKAGE PKG_XXX IS
    TYPE TYP_TAB_CHAR IS TABLE OF .... ;
    PROCEDURE P_XX ( Var1 IN VARCHAR2, var2 IN OUT TYP_TAB_CHAR );
    END ;
    Then in your Form :
    Declare
    var PKG_XXX.TYP_TAB_CHAR ;
    Begin
    PKG_XXX.P_XX( 'user_name', var ) ;
    End ;

  • A bizarre ORA-13349 case in 9i

    Hi all,
    We have just migrated from 8.17 to 9.2 and encountered a rather strange validation error on a particular polygon geometry.
    Subject Geometry:
    Parcel polygon composed of 4 polylines and 3 arcs.
    Validation SQL:
    SELECT SDO_GEOM.VALIDATE_GEOMETRY(SPATIALAREA, mtolerance) FROM PARCEL835105;
    Error:
    ORA-13349 (polygon boundary crosses itself) ONLY occurs when mtolerance is between 0.05 and 0.009. The geometry is considered fine when mtolerance is above 0.06 or below 0.008
    Observation:
    We examined the polygon using GeoMedia tool by traversing its vertices and could not find any apparent error.
    If you want to try the geometry you may create the following files by cutting-&-pasting the content underneath each file heading. Then run at the system prompt (DOS) IMPORT.BAT usr/pass@connectionstring.
    Bo Guo
    Maricopa County Assessor's Office
    Phoenix, AZ
    602-506-0930
    **************** PARCEL835105.DAT ********
    1525|2003| |pt||||1|1005|7|1|2|1|5|2|2|9|2|2|13|2|1|15|2|2|19|2|1|21|2|1|;658946.23100000003|870467.35999999999|658884.96200000006|870464.85400000005|658829.65517262102|870462.59209484397|658778.28773826023|870459.781195155|658727.01800000004|870455.54700000002|658692.40116387932|870451.87949395797|658657.85900000005|870447.56499999994|658657.79700328002|870442.51112167106|658743.64884854865|870452.05702360102|658829.85199999996|870457.59600000002|658941.16799999995|870462.14899999998|658946.23100000003|870467.35999999999|:||||
    **************** PARCEL835105.PRE ********
    CREATE TABLE PARCEL835105 (
    ID NUMBER(10,0),
    SPATIALAREA MDSYS.SDO_GEOMETRY,
    APN VARCHAR2(12),
    FLOOR NUMBER(10,0),
    DGN VARCHAR2(12),
    SOURCE_CD VARCHAR2(2), primary key (ID) );
    Exit;
    **************** PARCEL835105.POS ********
    insert into USER_SDO_GEOM_METADATA values('PARCEL835105', 'SPATIALAREA' ,MDSYS.SDO_DIM_ARRAY( MDSYS.SDO_DIM_ELEMENT('X', 232850, 993600, 0.03), MDSYS.SDO_DIM_ELEMENT('Y', 526000, 1134000, 0.03)), NULL );
    Commit;
    Exit;
    **************** PARCEL835105.CTL ********
    LOAD DATA
    INFILE 'PARCEL835105.Dat'
    APPEND INTO TABLE PARCEL835105
    FIELDS TERMINATED BY '|' OPTIONALLY ENCLOSED BY '"'
    TRAILING NULLCOLS
    ID,
    SPATIALAREA COLUMN OBJECT
    ( sdo_gtype INTEGER EXTERNAL,
    sdo_srid INTEGER EXTERNAL,
    isnull FILLER CHAR,
    SDO_POINT COLUMN OBJECT NULLIF SPATIALAREA.isnull="pt"
    ( X INTEGER EXTERNAL,
    Y INTEGER EXTERNAL,
    Z INTEGER EXTERNAL),
    SDO_ELEM_INFO VARRAY terminated by ';'
    (SDO_ORDINATES char(38)),
    SDO_ORDINATES VARRAY terminated by ':'
    (SDO_ORDINATES char(38))) ,
    APN,
    FLOOR,
    DGN,
    SOURCE_CD )
    **************** IMPORT.BAT********
    @echo off
    REM Copyright (c) 1999-2002 by Intergraph Corporation. All Rights Reserved.
    Rem Use this script to create tables and metadata with PL/SQL and populate tables with SQL*Loader.
    if "%1"=="" goto usage
    SQLPLUS %1 @"PARCEL835105.PRE"
    SQLLDR %1 CONTROL= PARCEL835105
    SQLPLUS %1 @"PARCEL835105.POS"
    goto end
    : usage
    @echo Syntax of the command is: "Import <username>/<password>@<ConnectString>"
    echo Examples:
    echo Import scott/tiger@db_orcl
    : end
    pause

    Doc ID: Note:1020247.102,Subject: Validating Geometry Returns ORA-13349 or ORA-13356 [published @ metalink]
    Problem Description:
    ====================
    Validating geometries for polygons in the Spatial Data Cartridge, may give: ORA-13349: polygon boundary crosses itself or ORA-13356 adjacent points in a geometry are redundant However, examining the polygon data shows that there are no crossing lines and no redundant points. This error may also be raised by SDO_BUFFER, which will appear to create an invalid polygon. Solution
    Description:
    =====================
    This is caused by the SDO_TOLERANCE being set to an inappropriate value for the data in the layer. The tolerance will be taken into account when validating whether two points are the same or if two lines cross.
    Explanation:
    ============
    SDO_VALIDATE_GEOMETRY generates an ORA-13349 when it detects that the geometric properties of the data are incorrect, and that the shape crosses itself. The reason for the errors is that the buffer function sometimes needs to generate very small shapes, typically circular arcs. There are situations where the ordinates generated have a precision higher than the SDO_TOLERANCE setting. Once rounded using the SDO_TOLERANCE setting, then it is possible that the shape appears to cross itself (ORA-13349). Setting the tolerance to 0.0 will remove the errors, since rounding will no longer happen. An simple example is if there are two points on the polygon: 2.60, 3.00 and 2.56, 3.00 with the tolerance set to .05 When rounded these will both appear to be 2.6, 3.00 and give the ORA-13356 error. Setting the tolerance to .005 would avoid this error. For SDO_BUFFER this error should not be reported from 8.1.6 onwards.

  • Line string validation and ORA-13349 on polygons

    Hi all,
    We are having the following problem:
    Our application accepts linestrings and connects them to create polygons. Each individual line validates TRUE but some polygons validate with ORA-13349. The problem is caused by lines that we call Lightning bolts. These are lines that cut back very sharp on themselves so that one or more points are within tolerance distance of a line segment.
    An example:
    mdsys.sdo_geometry(2002
    ,null
    ,null
    ,mdsys.sdo_elem_info_array(1, 2, 1)
    ,MDSYS.SDO_ORDINATE_ARRAY(258699.59,472878.73
    ,258688.58,472879.66
    ,258688.589,472879.659));
    Oracle spatial seems to be very tolerant in validating these lines but once they are used in a polygon they are not accepted.
    Why is this ?
    Also we are looking for is a way to detect these lines before the polygons are created.
    thanks, Rene

    Hi,
    To detect the "lightning bolts" this procedure seems promising.
    Do a self intersect of the geometry.
    Determine de spatial relationship between the original and the self intersect.
    If the spatial relationship is not "EQUAL" you have you lightning.
    Here is a real life example:
    declare
    l_geo1 mdsys.sdo_geometry := mdsys.sdo_geometry(2002
    ,90112
    ,null
    ,mdsys.sdo_elem_info_array(1, 2, 1)
    ,mdsys.sdo_ordinate_array(258727.255
    ,472853.276
    ,258724.984
    ,472848.338
    ,258714.12
    ,472852.98
    ,258709.61
    ,472854.55
    ,258710.89
    ,472859.11
    ,258712.41
    ,472865.36
    ,258712.3
    ,472868.37
    ,258711.51
    ,472871.47
    ,258709.83
    ,472874.33
    ,258704.77
    ,472877.1
    ,258699.59
    ,472878.73
    ,258688.58
    ,472879.66
    ,258688.589
    ,472879.659));
    l_geo2 mdsys.sdo_geometry;
    l_result varchar2(100);
    l_tolerance number := 0.0005;
    begin
    l_geo2 := mdsys.sdo_geom.sdo_intersection(l_geo1, l_geo1, l_tolerance);
    l_result := sdo_geom.relate(l_geo1, 'mask=determine', l_geo2, l_tolerance);
    dbms_output.put_line(l_result);
    end;
    This example returns an unknown mask 100110001 which I believe should be a OVERLAPBDYDISJOINT. But it is definitely not an EQUAL.
    I will have to go and find some more examples to test this method.
    thanks Rene

  • Is it possible to create a Synonym with different column names

    Hi,
    I want to create a Synonym with different columns names (Columns not in original table) . I am not sure if this can be done . Any suggessions...
    Thanks in advance....

    Synonyms are not limited to tables. Accroding to the SQL Reference, a synonym is:
    an alternative name for a table, view, sequence, procedure, stored function, package, materialized view, Java class schema object, user-defined object type, or another synonym.
    In fact, synonyms are not even validated until they are used:
    SQL> create synonym my_synonym for table_which_does_not_exist;
    Synonym created
    SQL> select * from my_synonym;
    select * from my_synonym
    ORA-00980: synonym translation is no longer valid

  • How duplicate ora11 on windows to another host with different directory structure

    Hi,
    I need help.
    I want to duplicate db (11.2) running on windows from server A to Server B
    Directory structures on server A and Server B are different;
    my steps
    on server A
    1.backup database plus archivelog delete input;
    2.insert into table t values(1);
    3.commit;
    4.backup archive log all;
    On Server B
    5.copy backup and archive logs from server A to server B (c:\backup\temp)
    6.create folders C:\oracle\oradata\bamboo
    7.oradim –new –sid bamboo -- (verified service is running)
    8. created pfile.ora with param (db_name=bamboo)
    9.SET oracle_SID=bamboo
    10.sqlplus  /as sysdba
    11.startup nomount pfile='(c:\backup\temp\pfile.ora'
    12.C:\oracle\product\11.2.0\db_1\database>rman auxiliary /
    result
    ..connected to auxiliary database: SBDBT02W (DBID=186082786, not open)  --could it be the fact that I tried to execute code bellow?
    My understanding at this point I should be connected to 'bamboo' -- my new database, what steps did I miss?
    I expect
    ..connected to auxiliary database: bamboo ( not mounted)
    bellow is code that I was going to run on Server B
    RUN
      SET NEWNAME FOR DATAFILE 1 TO 'C:\oracle\oradata\bamboo\SYSTEM01.DBF';
      SET NEWNAME FOR DATAFILE 2 TO 'C:\oracle\oradata\bamboo\SYSAUX01.DBF';
      SET NEWNAME FOR DATAFILE 3 TO 'C:\oracle\oradata\bamboo\UNDOTBS01.DBF';
      SET NEWNAME FOR DATAFILE 4 TO 'C:\oracle\oradata\bamboo\USERS01.DBF';
      SET NEWNAME FOR DATAFILE 5 TO 'C:\oracle\oradata\bamboo\EXAMPLE01.DBF';
      DUPLICATE DATABASE TO bamboo
      UNTIL TIME "TO_DATE('11/24/2013 13:18:02', 'MM/DD/YYYY HH24:MI:SS')"
      BACKUP LOCATION 'C:\backup\temp'
      NOFILENAMECHECK;
    when I executed it on Server B ,I got following error
    Starting Duplicate Db at 25-NOV-13
    RMAN-00571: ===========================================================
    RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
    RMAN-00571: ===========================================================
    RMAN-03002: failure of Duplicate Db command at 11/25/2013 11:27:36
    RMAN-05500: the auxiliary database must be not mounted when issuing a DUPLICATE
    command
    I looking for steps by step instruction for duplicating db to another windows host with different directory structure.
    Thank you
    Alex

    The topic, "Duplicating a Database on a Remote Host with a Different Directory Structure" can be found at http://docs.oracle.com/cd/B19306_01/backup.102/b14191/rcmdupdb.htm#i1006672
    This information should provide you the step by step process to follow including when on Windows.
    HTH -- Mark D Powell --

  • Shared Listener with different oracle versions

    Hi,
    I have configured the following shared listener for two databases running with different versions.
    I have started the O02TXN3-9i along with the shared listener and then listener was started with 9i version and then I brought up the O01TXN3 -10g.
    Please let me know whether I can connect to the 10g database O01TXN3 remotely with shared listener.
    Note: Please find listener and oratab files below.
    Your early response is much appreciated.
    Database O01TXN3 with 10g
    Database O02TXN3 with 9i
    ==== Listener.ora File ======
    TNS_DTXN03 =
    (ADDRESS_LIST =
    (ADDRESS=
    (PROTOCOL=IPC)
    (KEY= O01TXN3.world)
    (ADDRESS=
    (PROTOCOL=IPC)
    (KEY= O01TXN3)
    (ADDRESS=
    (PROTOCOL=IPC)
    (KEY= O02TXN3.world)
    (ADDRESS=
    (PROTOCOL=IPC)
    (KEY= O02TXN3)
    (ADDRESS =
    (COMMUNITY = tcpcom)
    (PROTOCOL = TCP)
    (Host = dtxn03)
    (Port = 1525)
    STARTUP_WAIT_TIME_TNS_DTXN03 = 0
    CONNECT_TIMEOUT_TNS_DTXN03 = 10
    LOG_DIRECTORY_TNS_DTXN03 =/dtxn03/txn/oracle/admin
    TRACE_LEVEL_TNS_DTXN03 = OFF
    SID_LIST_TNS_DTXN03 =
    (SID_LIST =
    (SID_DESC =
    (SID_NAME = O01TXN3)
    (ORACLE_HOME = /dtxn03/txn/oracle/10.2.0-64)
    (SID_DESC =
    (SID_NAME = O02TXN3)
    (ORACLE_HOME = /dtxn03/txn/oracle/9.2.0-64)
    # Added to get rid of the "inbound connection timed out (ORA-3136)"
    INBOUND_CONNECT_TIMEOUT_TNS_DTXN03 = 180
    ==
    Oratab:
    #LISTENER:/dtxn03/txn/oracle/9.2.0-64
    O01TXN3:/dtxn03/txn/oracle/10.2.0-64:Y
    O02TXN3:/dtxn03/txn/oracle/9.2.0-64:Y

    As a general rule, only one listener is required for a machine as long as all database versions are currently supported. (In other words one listener for Oracle7 and Oracle11g will not work.)
    As a general rule, an old listener MAY not be able to handle the features of the newer database (such as transferring blobs was a limitation in Oracle8). Therefore use the newest listener to handle all the databases.
    As a general rule, listeners can be considered independent of databases in a sense similar as ASM. Therefore it's not a bad idea to have a separate ORACLE_HOME specifically to install the listener. This is especially useful if you have multiple databases with differing service level agreements,
    I'd want to see
    1) the output of lsnrctl status
    2) any console session stuff and copy/paste to be surrounded by preview tages as described in the FAQ (http://www.oracle.com/technology/forums/faq.html#q14)

  • LINK to Database with different GLOBAL_NAME

    Could anybody help me? We have two databases with different GLOBAL_NAME parameter. First database has GLOBAL_NAME=true, second - 'false'. I would like to make LINK from first database to second. If I make link name as a simple word ('DBST'- for example), ORACLE adds DOMAIN name and connects with error ORA-02085. Second database doesn't use DOMAIN name.
    Thanks

    This script will export the activeDocument as a jpg and gif
    function exportSFWJpg( doc, saveFile, qty ) {
         var exportOpts = new ExportOptionsSaveForWeb( );
         // see guide for other options
         exportOpts.format = SaveDocumentType.JPEG
         exportOpts.includeProfile = true;//default false
         exportOpts.quality = qty;
         if ( saveFile.exists ) saveFile.remove( );
         doc.exportDocument( saveFile, ExportType.SAVEFORWEB, exportOpts );
    function exportSFWGif( doc, saveFile, qty ) {
         var exportOpts = new ExportOptionsSaveForWeb( );// default format is gif
         // see guide for other options
         if ( saveFile.exists ) saveFile.remove( );
         doc.exportDocument( saveFile, ExportType.SAVEFORWEB, exportOpts );
    var doc = activeDocument;
    var docPath = decodeURI( doc.path );
    var docName = decodeURI ( doc.name );
    docName = docName.match( /(.*)(\.[^\.]+)/ ) ? docName = docName.match( /(.*)(\.[^\.]+)/ ) : docName = [ docName, docName, undefined ];
    var saveName = docName[ 1 ];
    exportSFWJpg( doc, new File( docPath + '/' + saveName + 'POWERPOINT.jpg' ), 80 );
    exportSFWGif( doc, new File( docPath + '/' + saveName + 'WEB.gif' ) );

  • Why connect two dhcp servers with different IP addresses?

    
    so for an assignment at college we had to configure a router connected to two switches which both had a server connected to them.
    the computers were connected via dhcp to either server however each side had a different IP. we have now been asked to justify as to why two servers were used with different IP which I cannot quite produce a business orientated answer.
    I can understand connecting two dchp servers on same IP to increase fault tolerance but I do not understand using two separate IP addresses.

    Hi,
    Does “using two separate IP addresses“ mean 2 subnets which are connected by router?
    If you have separately configured 2 DHCP servers on the 2 subnets, and want 1 of the 2 DHCP servers to provide fault tolerance for the other. You need to use an RFC 1542–compliant router, or DHCP relay agent, in order to forward DHCP broadcast traffic.
    If there is any misunderstanding about your question, please correct. 
    Best Regards,           
    Eve Wang                                                                             
    Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Support, contact [email protected]

  • Different number of parses with different providers

    I tried to figure out
    how could I control number of parsing from MS ADO app.
    To my surprise it seems that there is no general way to do it.
    The behaviour is heavily dependent on underlying OLEDB provider,
    and for some of the providers (Oracle's own including)
    I did not manage to reduce number of parses.
    I wrote a simple vbs script that:
    1. Opens the connection for the given provider
    2. Executes ALTER SESSION SET session_cached_cursors=100
    3. Creates ADO command with 'SELECT ... FROM USER_TABLES..'
         and with one parameter
    4. Opens ADO recordset with this command, reads from and closes it
    Here is the script:
    'TestADOCommandParsing.vbs
    Dim stConnectString
    Dim stUID
    Dim stPWD
    Dim stTestTag
    Dim stServer
    Dim cn
    Dim cmdALTER_SESSION
    Dim cmdUserTables
    Dim rsUserTables
    Dim param
    Dim nRows
    Dim I
    Const c_stProvider = "Ora" '"MS" '"ODBC" '
    Const adVarChar = 200
    Const adParamInput = 1
    Const adUseServer = 2
    Const adOpenStatic = 3
    Const adLockReadOnly = 1
    stUID = "..."
    stPWD = "..."
    stServer = "..."
    stTestTag = "TestParsesADO_" & c_stProvider & "_1"
    If c_stProvider = "MS" Then
    stConnectString = "Provider=MSDAORA;" & _
    "User ID=" & stUID & ";Password=" & stPWD & ";Data Source=" & stServer & ";"
    ElseIf c_stProvider = "Ora" Then
    'Oracle provider.
    'The PLSQLRSet attribute [=1] specifies whether OraOLEDB needs to parse the PL/SQL
    'stored procedures to determine if a PL/SQL stored procedure returns a rowset:
    stConnectString = "Provider=OraOLEDB.Oracle;PLSQLRSet=0;" & _
    "User ID=" & stUID & ";Password=" & stPWD & ";Data Source=" & stServer & ";"
    ElseIf c_stProvider = "ODBC" Then
    stConnectString = "Provider=MSDASQL.1;Extended Properties=" & _
    """DRIVER={Microsoft ODBC for Oracle};" & _
    "UID=" & stUID & ";PWD=" & stPWD & ";SERVER=" & stServer & ";"""
    End If
    wscript.echo "Provider = " & c_stProvider
    wscript.echo "stConnectString = " & stConnectString
         Set cn = CreateObject("ADODB.connection")
         cn.Open stConnectString
         Set cmdALTER_SESSION = CreateObject("ADODB.Command")
    With cmdALTER_SESSION
    .CommandType = 1 'adCmdText
    .Prepared = False
    .CommandText = _
    "BEGIN EXECUTE IMMEDIATE 'ALTER SESSION SET session_cached_cursors=100'; END;"
    Set .ActiveConnection = cn
    End With
    cmdALTER_SESSION.Execute
         Set cmdALTER_SESSION = Nothing
         Set cmdUserTables = CreateObject("ADODB.Command")
    With cmdUserTables
    Set .ActiveConnection = cn
    .CommandType = 1 'adCmdText
    'The Recordset parameters
    'CursorLocation, CursorType, LockType
    'seem to be irrelevant for reparsing of Oracle cursor.
    'Oracle session_cached_cursors parameter also has no effect.
    'Command.Prepared setting affects it, but only for ODBC-based provider:
    'False: N parses, N executions
    'True: 1 parse, N executions
    .Prepared = True
    .CommandText = _
    "SELECT TABLE_NAME FROM USER_TABLES " & _
    stTestTag & " " & _
    "WHERE TABLE_NAME LIKE ? " & _
    "ORDER BY TABLE_NAME"
    Set param = .CreateParameter("TABLE_NAME_Pattern", adVarChar, adParamInput, 30, "%")
    .Parameters.Append param
    End With
         Set rsUserTables = CreateObject("ADODB.Recordset")
    For I = 1 To 10
    cmdUserTables.Parameters("TABLE_NAME_Pattern").Value = "QU_%"
    With rsUserTables
    'The Recordset parameters:
    'CursorLocation, CursorType, LockType
    'seem to be irrelevant for reparsing of Oracle cursor:
    '.CacheSize = 100 'Irrelevant
    '.CursorLocation = adUseServer 'adUseClient 'Irrelevant
    '.CursorType = adOpenStatic 'adOpenForwardOnly 'Irrelevant
    '.LockType = adLockReadOnly 'Irrelevant
    .Open cmdUserTables
    While Not .EOF
    nRows = nRows + 1
    .MoveNext
    Wend
    wscript.echo CStr(I) & ". nRows = " & CStr(nRows)
    .Close
    End With
    Next
    Before running tests:
    VARIABLE SQLTextPattern VARCHAR2(100);
    COLUMN HASH_VALUE FORMAT 9999999999
    COLUMN SQL_TEXT FORMAT A40
    COLUMN "Invalids" FORMAT 9999999
    COLUMN "Parses" FORMAT 9999999
    COLUMN "Execs" FORMAT 9999999
    COLUMN "Parses/Execs" FORMAT 9999.99
    COLUMN CH# FORMAT 999
    COLUMN ROWS# FORMAT 9999
    I ran TestADOCommandParsing1.vbs script 3 times with
    different providers and table aliases to distinguish
    SQL from different tests:
    host cscript.exe TestADOCommandParsing1.vbs
    After each run I changed table alias var:
    EXEC :SQLTextPattern:='%TestParsesADO_Ora_1%';
    or
    EXEC :SQLTextPattern:='%TestParsesADO_ODBC_1%';
    or
    EXEC :SQLTextPattern:='%TestParsesADO_MS_1%';
    and queried V$SQL, V$SYSSTAT.
    Before running the tests:
    SYSTEM@ADAS> SELECT NAME, VALUE
    2 FROM V$SYSSTAT
    3 WHERE NAME = 'session cursor cache hits'
    4 ;
    NAME VALUE
    session cursor cache hits 91051
    Test with Oracle OLEDB provider:
    SELECT
              SUBSTR(SQL_TEXT,1,200) SQL_TEXT
              ,PARSE_CALLS PARSES
              ,EXECUTIONS EXECS
              ,CHILD_NUMBER CH#
              ,FIRST_LOAD_TIME
              ,ROWS_PROCESSED ROWS#
         FROM V$SQL
         WHERE SQL_TEXT NOT LIKE '%SQL_TEXT%'
              AND SQL_TEXT NOT LIKE '%SQLTextPattern%'
              AND SQL_TEXT LIKE :SQLTextPattern
         ORDER BY CH#
    SQL_TEXT PARSES EXECS CH# ROWS#
    SELECT TABLE_NAME FROM USER_TABLES TestP 21 0 0 0
    arsesADO_Ora_1 WHERE TABLE_NAME LIKE :1
    ORDER BY TABLE_NAME
    SELECT TABLE_NAME FROM USER_TABLES TestP 0 10 1 230
    arsesADO_Ora_1 WHERE TABLE_NAME LIKE :1
    ORDER BY TABLE_NAME
    SELECT NAME, VALUE FROM V$SYSSTAT...
    NAME VALUE
    session cursor cache hits 91062
    Test with ODBC OLEDB provider:
    SELECT ... FROM V$SQL ...
    SQL_TEXT PARSES EXECS CH# ROWS#
    SELECT TABLE_NAME FROM USER_TABLES TestP 1 0 0 0
    arsesADO_ODBC_1 WHERE TABLE_NAME LIKE :V
    001 ORDER BY TABLE_NAME
    SELECT TABLE_NAME FROM USER_TABLES TestP 0 10 1 230
    arsesADO_ODBC_1 WHERE TABLE_NAME LIKE :V
    001 ORDER BY TABLE_NAME
    SELECT NAME, VALUE FROM V$SYSSTAT...
    NAME VALUE
    session cursor cache hits 91062
    Test MS OLEDB provider for Oracle:
    SELECT ... FROM V$SQL ...
    SQL_TEXT PARSES EXECS CH# ROWS#
    SELECT TABLE_NAME FROM USER_TABLES TestP 11 0 0 0
    arsesADO_MS_1 WHERE TABLE_NAME LIKE :V00
    001 ORDER BY TABLE_NAME
    SELECT TABLE_NAME FROM USER_TABLES TestP 0 10 1 230
    arsesADO_MS_1 WHERE TABLE_NAME LIKE :V00
    001 ORDER BY TABLE_NAME
    SELECT NAME, VALUE FROM V$SYSSTAT...
    NAME VALUE
    session cursor cache hits 91062
    As you see the number of parses (both soft and hard) differ from
    provider to provider.
    Provider Hard parses Soft parses Executions
    ODBC 1 0 10     
    MS for Oracle 11 0 10     
    Oracle 11 10 10     
    It looks like there is no way to control this 'bad' behaviour of
    OLEDB providers, at least from ADO level. I looked through the docs on
    Oracle provider for 8.1.6, but found nothing.
    There is a temptation to drop all this stuff in favour of SQL
    incapsulated in PL/SQL procedures...
    Any comments?

    D.Bender wrote:
    Hello,
    What's very confusing is that it doesn't always return the same number of readings. Sometimes it is 5, then 7 and afterwards 6 without changing anything. Since it is the first program for the Keithleys at work nobody can help me. I already tried highlighting execution and retain wire values. This way I saw that the VISA write command should give the correct command but the VISA read does not return the right number of readings. In addition to that I don't get any readings on the second iteration, so I can only see some on the first. The Keithley also does not show any new measurements (at least it does not show any numbers, only the typical "----").
    I can't view your file but I have experience with the Keithley 2400 so here is my opinion.  
    This is a common problem for new users working with buffers.  The most likely cause is that you are reading the buffer BEFORE it is full.  If you initiate the second measurement immediately, you will likely see a Keithley error caused by trying to set the buffer values while a measurement is in progress.  The keithley will immediately return the buffer contents when asked to.  You, as the programmer, must set up your LabVIEW code to wait for the buffer to fill, then read the values.  While a fixed delay before reading could work, here is a better solution.
    I posted my code for a I-V sweep (set voltage, measure current over a linear range) here http://forums.ni.com/t5/LabVIEW/Error-code-110-in-​keithley-2400/m-p/2680579#M797618.  (sorry I don't have access to the files right now to upload them here.  The idea is first set the registers to watch for the buffer to become full.  When full, the SRQ bit will be set to 1.  After starting the measurement, i probe the SRQ value in a while loop.  Once it's set to 1, read the buffer and reset registers.  This method is outlined in the Keithley 24xx SMU manual (I can't remember which page).

  • Simple spatial query with different SRID

    Can anyone help me with just a real simple spatial query with different SRID.
    Here is the error i get when i perform the query:
    AND SDO_RELATE(A.geometrie_point, B.GEOMETRIE_POLYGONE, 'mask=anyinteract querytype=WINDOW') = 'TRUE'
    ERROR at line 4:
    ORA-00604: error occurred at recursive SQL level 1
    ORA-13207: incorrect use of the [IN COMPATIBLE BOUNDS in SDO_RELATE] operator
    ORA-06512: at "MDSYS.SDO_INDEX_METHOD", line 84
    ORA-06512: at line 4

    Hi,
    I am using 8.1.7.2 and i have the lattest spatial patch.
    From the start i had different SRID. The only thing i changed was the bounds of the coordinate system.
    I reset my bounds of the coordinate system with SRID 8307 to -180,
    180 in X (longitude), and -90,90 in Y (latitude) to see if the query window geometry
    (geom2) will be transformed to the coordinate system of the layer geometries (geom1)
    Her is the content of the user_sdo_geom_metadata :
    GIS_PCP GEOMETRIE_POINT
    SDO_DIM_ARRAY(SDO_DIM_ELEMENT('X', -5800000, 3600000, .00000005), SDO_DIM_ELEMENT('Y', 3516000, 6000000, .00000005))
    82227
    GIS_TEST GEOMETRIE_POLYGONE
    SDO_DIM_ARRAY(SDO_DIM_ELEMENT('X', -180, 180, .00000005), SDO_DIM_ELEMENT('Y', -90, 90, .00000005))
    8307
    Here is my query :
    select /*+ ordered */ A.no_point
    from gis_pcp A, gis_test B
    WHERE SDO_RELATE(A.geometrie_POINT, B.GEOMETRIE_POLYGONE, 'mask=anyinteract querytype=WINDOW') = 'TRUE';
    Here is my result :
    WHERE SDO_RELATE(A.geometrie_POINT, B.GEOMETRIE_POLYGONE, 'mask=anyinteract querytype=WINDOW') = 'TRUE'
    ERROR at line 3:
    ORA-00604: error occurred at recursive SQL level 1
    ORA-13207: incorrect use of the [IN COMPATIBLE BOUNDS in SDO_RELATE] operator
    ORA-06512: at "MDSYS.SDO_INDEX_METHOD", line 84
    ORA-06512: at line 4
    If i change the bounds of GIS_TEST to the exact bouns of GIS_PCP then i dont have the error message above and i have correct results. Do i have the adjust the bounds of every layer to fit the biggest bound?

  • Standby database with different directory structure

    Hi,
    sorry to say that we are in desupported version due to some constraint.
    oracle version : 8.1.7.0.0.
    os:sun 5.9
    I need to create physical standby database with different directory structure:
    i have created standby database with same directory structure of primary, now i have requirement to create with different directory structure.
    in oracle 8i we can not give multiple parameter for db_file_name_convert(ORA-01678: parameter db_file_name_convert must be two strings, a pattern and a replacement) and i do have partitions in primary as follows:
    bash-2.05$ df -h
    Filesystem             size   used  avail capacity  Mounted on
    /dev/dsk/c1t0d0s0       20G    14G   5.6G    72%    /
    /proc                    0K     0K     0K     0%    /proc
    mnttab                   0K     0K     0K     0%    /etc/mnttab
    fd                       0K     0K     0K     0%    /dev/fd
    swap                    11G    40K    11G     1%    /var/run
    dmpfs                   11G     0K    11G     0%    /dev/vx/dmp
    dmpfs                   11G     0K    11G     0%    /dev/vx/rdmp
    swap                    11G   656K    11G     1%    /tmp
    /dev/dsk/c1t0d0s3       25G    18G   6.8G    72%    /oracle
    /dev/vx/dsk/suportaldg/oracle1
                            12G    11G   1.1G    91%    /oracle1
    /dev/vx/dsk/suportaldg/oracle2
                            12G   8.1G   3.7G    69%    /oracle2
    /dev/vx/dsk/suportaldg/orapurge
                           200G   182G    17G    92%    /orapurge
    /dev/vx/dsk/suportaldg/oracle3
                            12G    10G   1.9G    85%    /oracle3
    /dev/vx/dsk/suportaldg/oracle4
                            12G    12G    58M   100%    /oracle4
    /dev/vx/dsk/suportaldg/oracle5
                           7.0G   5.9G   1.0G    86%    /oracle5
    /dev/vx/dsk/suportaldg/oracle6
                           7.0G   6.4G   564M    93%    /oracle6
    /dev/vx/dsk/suportaldg/oracle7
                            23G    23G   358M    99%    /oracle7
    /dev/vx/dsk/suportaldg/oracle8
                            13G    13G   165M    99%    /oracle8
    /dev/vx/dsk/suportaldg/oracle9
                            23G    22G   1.4G    94%    /oracle9
    /dev/vx/dsk/suportaldg/oracle10
                            12G  10.0G   1.9G    85%    /oracle10
    /dev/vx/dsk/suportaldg/oracle11
                            39G    36G   2.1G    95%    /oracle11
    /dev/vx/dsk/suportaldg/oracle12
                            39G    38G   1.1G    98%    /oracle12
    /dev/vx/dsk/suportaldg/oracle13
                            68G    65G   2.6G    97%    /oracle13
    /dev/vx/dsk/suportaldg/oracle14
                           200G   199G   1.3G   100%    /oracle14
    /dev/vx/dsk/suportaldg/oracle15
                           200G   196G   3.6G    99%    /oracle15
    /dev/vx/dsk/suportaldg/oracle16
                            70G    64G   5.5G    93%    /oracle16
    /dev/vx/dsk/suportaldg/oracle20
                           7.0G   6.4G   609M    92%    /oracle20
    /dev/vx/dsk/suportaldg/oracle50
                            28G    26G   2.0G    93%    /oracle50
    /dev/vx/dsk/suportaldg/oratranslog
                           185G   165G    19G    90%    /oratranslogso how i can create standby database with different directory structure, help is appreciated.
    Thanks
    Edited by: prakashdba on Mar 5, 2009 11:04 PM

    Looks like very difficult and inform you mgmt about the drawbacks of running olderv ersions
    may be you can try something like this but i dont know whether it is supported or not
    db_file_name_convert=['/dev/vx/dsk/suportaldg/oracle3','/dev/vx/dsk/suportaldg/STDBY/oracle3']
    db_file_name_convert=['/dev/vx/dsk/suportaldg/oracle4','/dev/vx/dsk/suportaldg/STDBY/oracle4']
    db_file_name_convert=['/dev/vx/dsk/suportaldg/oracle5','/dev/vx/dsk/suportaldg/STDBY/oracle5']

  • Export Import with different tablespaces

    Does anyone know if there is a way to export from one database (creating a dmp file) and then importing into another database with different tablespaces? I have tried this and get this error:
    ORA 959. It complained that the tablespace doesnt exist (which it doesnt). Is there a way I can change the export or import parameters to avoid this and just use the default tablespaces?
    I may well be missing the point here so please feel free to tell me I am being a fool.
    Thanks
    Johan

    Example. All these tables are from the same schema with the same tablespace specified in the dmp file. There are many more and 90 % fail but not all.
    importing SCHEMA1 objects into SCHEMA2
    IMP-00017: following statement failed with ORACLE error 959:
    "CREATE TABLE "ACCOUNT_RPRT_NOT_TOBE_PUBLISH" ("O__NUM" CHAR(13) NOT NULL EN"
    "ABLE, "O__ST" NUMBER(4, 0) NOT NULL ENABLE, "STEP_COUNTER" NUMBER(7, 0), "S"
    "TATUS" NUMBER(1, 0), "RETRY_COUNTER" NUMBER(5, 0), "RESTART_COUNTER" NUMBER"
    "(5, 0), "PID" NUMBER(3, 0), "OBJ_LOCK" VARCHAR2(10), "MYFILE" VARCHAR2(200)"
    ", "LONG_FIELD" CLOB, "LAST_SELECT_B_S" VARCHAR2(250), "LAST_SELECTION" VARC"
    "HAR2(250), "L_EXECUTION_CTRL" CHAR(13), "ID" NUMBER(6, 0), "ERROR_COUNTER" "
    "NUMBER(7, 0), "CREATION_TIME" NUMBER(5, 0), "CREATION_DATE" NUMBER(6, 0), ""
    "COMPLETION_TIME" NUMBER(5, 0), "COMPLETION_DATE" NUMBER(6, 0), "COMMIT_COUN"
    "TER" NUMBER(5, 0)) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 STORAGE(I"
    "NITIAL 65536 FREELISTS 1 FREELIST GROUPS 1) TABLESPACE "AIA_DATA_T_256K" LO"
    "GGING NOCOMPRESS LOB ("LONG_FIELD") STORE AS (TABLESPACE "AIA_DATA_T_256K""
    " ENABLE STORAGE IN ROW CHUNK 8192 PCTVERSION 10 NOCACHE STORAGE(INITIAL 65"
    "536 FREELISTS 1 FREELIST GROUPS 1))"
    IMP-00003: ORACLE error 959 encountered
    ORA-00959: tablespace 'AIA_DATA_T_256K' does not exist
    . . importing table "ACTUARIAL_RPT_CNTR" 0 rows imported
    . . importing table "ACTUARIAL_RPT_CVRG" 0 rows imported
    . . importing table "ALIS_CANCEL_BILLING" 2799 rows imported

  • Again: ORA-13349 (Self-touch)

    I know this topic has been discussed several times.
    My question is, how to store my land use data as shown in picture linked below:
    http://mroy.wordpress.com/files/2006/07/ora-13349.jpg
    Bunch of polygon "B" touched each other, so it's caused polygon "A" self touched.
    Should I manipulate the data, while the data it self is real-world data? Why ESRI ArcGIS topology doesn't think this is an error?
    TIA,
    Roy Irwan

    Bryan Hall wrote:
    I would hazard to guess that the polygons inside the
    multipolygon don't touch, but actually overlap.Well, actually they are touched each other. They have exactly the same coordinate at one vertex, that's why I call it 'touched'.
    From the ESRI Shape validation page found at the
    bottom of this document:
    http://edndoc.esri.com/arcsde/9.0/general_topics/shape
    _validation.htm
    * Multipart area shapes may not overlap. However, two
    parts may touch at a point.Good article. As I told you, my data has been validated by ArcGIS, and they are all valid.
    For SDO_GEOMETRY multipolygons:
    There can be no shared area between polygons
    Different polygons can touch each other at point
    locations, but the boundaries cannot run along each
    other.I completely clear about the rules. But why? Why can't we have touched polygons covered by other polygon? Even this is the real condition?
    Rgds,
    Roy Irwan

  • Distribute air install with different DB files

    hey all,
    I have two air applications.  The first is an admin widget that allows a user to create new DB files and edit existing ones.  This is used to hold different image information.  The second air widget reads a DB files and gives the user access to the image information from the DB file that was created in the admin.  My problem now is distribution.  I would like to distribute different installs of the widget with different DB files.  Can this even been done without connecting to the internet and downloading the DB file after autherization.  Or can I have the admin widget compile these install files?  Any ideas would be helpful
    Thanks,
    Josh

    I am trying to duplicate a Primary database in another server with different db name. On firing the duplicate target database for standby from active database nofilenamecheck i face ORA-01103: database name 'ORADB' in control file is not '11GDB' error. i even tried some other duplication commands by surfing in internet but nothing worked.When you duplicate from primary to standby. Ensure the DB_NAME same on both primary and standby and of course you can have different DB_UNIQUE_NAME in both primary and standby databases.

Maybe you are looking for