I have a road network which is shape file format and i want to export it to oracle spatial format using any free tool, I am using arcgis 9.3.1 and Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bi,
I am working on a project that will require both projected coordinates and geographic coordinates for different product files coming in. I have no issues defining, storing, extracting or matching the geographic coordinates. My columns for those coordinates with SRID 8307 are defined in the user_sdo_geom_metadata table as follows:
the index: create index "MYDB"."INVGEO_IDX" on "MYDB"."INVENTORYGEOMETRY"("INVGEO") indextype is MDSYS.SPATIAL_INDEX;
how I am going to have a column that has both Geographic and Projected coordinates. Am I allowed to define more SDO_DIM_ELEMENT(s) fro the SDO_DIM_ARRAY with different min/max values. As an example, would I be able to still use an SRID of 8307 for both WGS 84 and GRS80 data (ellipsoid), something like the following:
Is that possible or do i have to create a new column in the database? Also, I don't know the relationship between the SDO_ELLIPSOIDS table and the SDO_GEOMETRY table.
how I'm going to make this work for both the geographic and projected coordinates or if I'm going to be able to make it work.
would there be any code change for spatial data after migration from 10g to 11g? In case of upgradation from 10R1 to 10R2, there were lot of issues regarding the spatial data code.
know beforehand so that it should not affect the service.I have already done the migration from 10g to 11g by 2 ways succesfully.
I am trying to execute an inline spatial query from c# using ODP.NET. This is a select query and I am passing 2 parameters to this query, one is string and other one is SDO_GEOMETRY. I am able to send SDO_Geometry parameter from c# using Oracle UDT custom designed classes.
Query is working as intended but occasionally giving the following errors:
ORA-29902: error in executing ODCIIndexStart() routine ORA-13033: Invalid data in the SDO_ELEM_INFO_ARRAY in SDO_GEOMETRY object ORA-06512: at "MDSYS.SDO_INDEX_METHOD_10I", line 333 ORA-29902: error in executing ODCIIndexStart() routine ORA-13031: Invalid Gtype in the SDO_GEOMETRY object for point object ORA-06512: at "MDSYS.SDO_INDEX_METHOD_10I", line 333
I could not figure out the cause of this issue (as it is not failing frequently). Am i getting this issue with the actual query or with Oracle UDT conversion.
I have a table with two columns called startsem and gradsem they are both CHAR(3). Within those colums are rows that are listed as SemesterYear. For example, F09 is Fall 2009, S09 Spring 2009, and M09 is Summer 2009. I would like to create a constraint that says GradSem must be greater than StartSem b/c no one can travel back in time to graduate. However, as you know you can compare S09 > F09 because it will treat it as a string. I thought I could use a substring and compare the last two digits as a year and that would work but how do I compare the semesters as a time frame? Because in my schema F > S because Spring 2011 comes before Fall 2011 but in reality F < S because to Oracle it is a string and the ASCII value of F is less than S. I cannot chage the coding of the database so editing the rows so they are more date friendly is not an option.
So how can I modify this database to acruately compare StartSem and GradSem.
I have data block that has hundreds of records. On a screen I display 20 records at a time. On that same screen I have "find badge" function where user types badge/employee id and presses a button to find the record in a data block. I have no problem finding the records in a list and pointing the curser to appropriate record. My question is (which is a user request) if the badge/employee id is found to make that record to be the first record in a list.
I wanted to develop a custom form which is not related to oracle apps. I don't want to login to oracle and use the form. I wanted it to be like standalone form (use it as a tool) where I can automate the process of migrating the code from one instance to another, on click of button. Can I create standalone form and run without logging to oracle?
When performing job search in i Recruitment found that all jobs are not retried when performing geocode search using Distance from Location functionality.
Narrowed down and found few addresses have Geometry coordinates (0,0) which are posing this problem. Example :
The SDO_LENGTH command appears to be giving us the length of only the first line segment in a mult-segmented polylines. ... For example.. for this
polyline.... MDSYS.SDO_GEOMETRY(3002,82212,null,MDSYS.SDO_ELEM_INFO_ARRAY(1,4,2,1,2,1,7,2,2),MDSYS.SDO_ORDINATE_ARRAY(489308.53608219,5465823.43147879,0,489254.621813806,5465739.29869485,0,489223.453489433,5465690.81111309,0,489217.608149169,5465676.83952032,0,489213.696031073,5465662.20843221,0,489213.337168734,5465657.12388026,0,489213.259485918,5465652.02727197,0)) RunningUPDATE TEMP_1 SET LEN = SDO_GEOM.SDO_LENGTH (GEOMETRY,0.005,'unit=meter');
We get 99.925 meters,and not the 198.075 that we were expecting.
for functions like SDO_GEOM.RELATE, do the return values like "COVEREDBY", are those values/definitions defined in the database somewhere? For instance a table containing all the values and a description of each?
I want to store duplicate geometry intentionally, will it have any problems ?? Because same data comes from different sources and going to be big database system.
I am trying to run spatial operations through dblinks. See the example query below
select a.OGC_GEOMETRY.sdo_gtype from <table>@dblink a where sdo_nn(a.OGC_GEOMETRY,mdsys.sdo_geometry(2001,null,mdsys.sdo_point_type(0,0,null),null,null),'sdo_num_res=1')='TRUE'.
Query fails with the following error
ORA-13249: ORA-06512: at "MDSYS.MD", line 1723 ORA-06512: at "MDSYS.MDERR", line 17 ORA-06512: at "MDSYS.PRVT_IDX", line 9 *13249. 00000 - "%s"* **Cause: An internal error was encountered in the extensible spatial index* component. The text of the message is obtained from some other server component. **Action: Contact Oracle Support Services with the exact error text.*
Same Query runs fine in the original database but fails with dblinks. Is it possible to run spatial operations through dblink?
I recently stumbled upon a post for an undocumented golden gate procedure that I find VERY useful when repairing / simplifying spatial data as a DBA without causing user triggers to fire and do unnecessary work, etc. Anything with foo in the name must be good, right? ;-)
HINT: Oracle please make this a documented feature!
This will disable triggers – just for a session – no system wide changes or trigger mods needed! Yes, fire needs to be set to true - to disable the triggers from firing.
I Have Problem in How to determination the Direction And the neighbor For polygon As in the picture.
picture in [URL]...
I Want determination :
From north : polygon with object Id=..... From south : streets with object Id=..... From east :streets with object Id=..... From west : polygon with object Id=.....
I have Started and I Identified the Directions I get line of land with line 29 meters is the North and line with 25.4 is south ......
Now how I can Determination the border of land ?manes : north ... land with number 2 south ... street with 15 meters width
I have data in point cloud (x,y,z,a,b,c,d (a,b,c,d are some attributes about this point)). i create a point cloud (sdo_pc - geometry), block tables (sdo_geometry - geometry). if i use a function to_geometry, result is only in multi point without attributes. it is way display this 3D data, and at the same time inquire of concerning for a attributes in concrete points?
I see that I can use SDO_LRS.SPLIT_GEOM_SEGMENT to split a line at a single point (and get 2 resulting lines).
However, how I could split a line, at multiple points, into multiple segments? I need to do this for many rows, therefore a function or procedure would be good if any exists.
I am using Oracle Database 11.2.0.1 with activated Oracle Locator and I'm wondering why there are missing EPSG-Codes in SDO_COORD_REF_SYSTEM. I thought, implementing the EPSG-Scheme means adding all supported projections.
Since I need to use the coordinate systems for austria (especially 31256) , which have been reassigned new* EPSG-Codes (31251-31259) with new false northing in 2007, it is a problem that in Oracle Locator only the "old" codes (31281-31290) are supported.
Do I have to add these codes manually or is there a patch available?
I'm trying to get the values of a Geometry which is an Oriented Point. To that, i'm using SDO_UTIL.GETVERTICES, but this utility only obtains the point X,Y, it doesn't obtain the values of the orientation vector.
The Geometry is this: MDSYS.SDO_GEOMETRY( 2001,8307,NULL, MDSYS.SDO_ELEM_INFO_ARRAY(1,1,1,3,1,0), MDSYS.SDO_ORDINATE_ARRAY(-75.586088632813272,6.1794352615514194,0.57278169530235967,-0.81970795380217887,0) )
The query is this: SELECT c.ipid, c.nombre, t.X, t.Y, t.Z, t.W FROM Hidrantes c, TABLE(SDO_UTIL.GETVERTICES(c.geometria)) t where c.ipid = 4691117 ORDER BY c.ipid, t.id;
I have loaded shape files with SQL developer Georaper and limited number of decimals to 8. There is option to limit number of decimals in georapter.But there are some X, Y with many decimals. This may create problem in spatial functions in which geometries are compared and filtered
how to control the decimal points of X,Y to be loaded in geometry column. -0.4695623500000000172249770002963487058878 51.47160360000000167701728059910237789154-0.4702653600000000211345252409955719485879 51.47174944999999723904693382792174816132-0.4713475400000000092859409051015973091125 51.47330664999999783049133839085698127747-0.4717886499999999760923685698799090459943
I have a requirement to fetch the nearest neighbor from a given point coordinates inside a point cloud/georaster data. how can i retrieve a collection of all neighboring points from a given point.
I guess i will have to use sdo_nn operator. how to use the operator to achieve the result.
if there is a way to create a custom log files or if there is way to utilize the built in log function of Oracle. Here is the code with what I am trying to do:
IF (_CONDITION IS NOT NULL) THEN IF (V_CONDITION <> 'NS' OR V_CONDITION <> 'NE' OR V_CONDITION <> 'AR' OR V_CONDITION <> 'OH' OR V_CONDITION <> 'SV') THEN
[Code]....
Ok, so where you see V_CONDITION := 'XX'; I would like to have the value of V_CONDITION be input into a log file as apposed to changing the value to XX. So I would have something like:
RAISE BAD_CONDITION_CODE;
The problem is that I am not sure how to create the actual log file that the value of V_CONDITION will be stored in.
I created a custom type what it has a clob member variable:
CREATE TYPE custom_type AS OBJECT( c_type INTEGER, c_number NUMBER(38, 8), c_varchar2 VARCHAR2(4000 CHAR), c_clob CLOB, [code]........
The inserting and updating works with constructor: ... custom_type (to_clob('foo')) . But if the data is longest than 4000 characters then the PHP isn't access to it.
So: The normal case: $sql = ("INSERT INTO table ( clob_field ) VALUES ( EMPTY_CLOB() ) RETURNING clob_field INTO :clob"); $stid = oci_parse($conn, $sql); $clobdescr = oci_new_descriptor($conn, OCI_DTYPE_LOB); oci_bind_by_name($stid, ':clob', $clobdescr, -1, OCI_B_CLOB); oci_execute($stid); $clobdescr->save('more than 4000 chars'); ...
This case: I tried: $sql = ("INSERT INTO table ( ctype ) VALUES ( custom_type(EMPTY_CLOB()) ) RETURNING ctype.c_clob INTO :clob"); $stid = oci_parse($conn, $sql); $clobdescr = oci_new_descriptor($conn, OCI_DTYPE_LOB); oci_bind_by_name($stid, ':clob', $clobdescr, -1, OCI_B_CLOB); oci_execute($stid); $clobdescr->save('more than 4000 chars');
ORA says: "ORA-00904: CTYPE.C_CLOB: invalid identifier";