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
pauseDoc 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, ReneHi,
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
AlexThe 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:YAs 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.
ThanksThis 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 4Hi,
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 PMLooks 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
JohanExample. 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 IrwanBryan 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,
JoshI 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
-
How can I retrieve the IP address of the default printer from the windows registry
I am using LabVIEW 7 on windows NT4 computers. I have a SubVI that I use to ping the network printer to make sure that the printer is on line prior to sending a print at the end of testing a unit. If LabVIEW does not get a reply to its ping data is s
-
Change parameters on network interface card
Hi, Ndd utility says that my ce0 adv_100fdx_cap, adv_100hdx_cap, adv_10fdx_cap, adv_10hdx_cap are read only. Can I set these capabilities to read write??? I'll get a permission denied message, if I try "ndd -set /dev/ce0 adv_100fdx_cap 1" in superuse
-
Can someone POST Plug-In count TIGER vs LEOPARD?
I know I have read conflicting posts but have never seen anything concrete from say barefeats or macworld regarding AUDIO benchmarks. Would appreciate reading track (virtual instruments) and plug-in count with TIGER vs LEOPARD. Thanks.
-
We have upgraded to fro m 3.0.8 portal 3.0.9.8.2 9iAS 1.0.2.2 on database 8.1.7 the system is very fast and run for sometime but after a while we see the following errors in Jserv.log file. this error causes the whole system to hang and we have to re
-
MacOS 10.4 Server installation hangs at language selection
When I rubn the MacOS 10.4 Server installer, it hangs at the language selection menu. This occurs regardless of how I start the installer (either by booting directly from the installer DVD or from within MacOS 10.4 client.) The hardware is a PowerMac