Cache spatial data or query
I have an application where, as expected, the first spatial query takes longer then the users when they submit the same or similar query on the session layer. Is there a way to cache this first request until our users even start the application so that they will not have to wait for the first analysis lasts? Or trying to keep the table itself in the cache would be a way to go?Thank you
-mcslain
OK, there are two types of "cache" at play here. The first is the shared SQL. The first time that a query is run, only it will be difficult to analyze. The plan of the explanation will be stored in the shared pool subsequently up to what is old output (should not happen often normally). The following queries by using the same SQL code (assuming you are using bind variable) will reuse the shared SQL. You could force SQL in the shared pool in order to avoid users having to live a hard analysis (installation of a procedure and dbms_schedule it), but you shouldn't need to do. If you get a lot of hard analysis, then you do not bind variables, or something gets older the SQL code of the shared pool - which might be too DB start/stop, pool is too small, etc..
I had first to address this problem.
The other "cache" is the buffer cache. If the data to be read by the application do not yet exist in the buffer cache, then it will have to go on the drive to get it. Who will take more time than reading from the buffer cache. If the first query will take probably longer than the following. You could look at pinning a table in the pool to KEEP it, but I do it only for the small tables that are accessed very often.
Tags: Database
Similar Questions
-
Creation of spatial data connectivity data
Hello
I have a few spatial data, which I'll try to describe the relevant aspects:
-A LineSegment table, which contains information about cables, including the ID of the area (approximately 4 million lines)
-An array of location, that contains a LineSegmentID (one by one), and a column (space) geometry (approximately 4 million lines).
What I need to do, is to create a new table containing conceptual "nodes", containing the following columns:
-NodeID (number)
-(Number) LineSegmentID
-LineSegmentEnd (1 or 2)
So I need to prepare, for each cable, which other cable it connects, by comparing its ends with the endpoints of other cables in the same sector. A box contains cables up to 464. There are a total of 160 thousand areas.
I'm working on the most effective way to achieve this, ideally by making a batch which will take less than half an hour. Oracle is relatively new to me, but I'm guessing that the right approach would be to use a series of intermediate (intermediate) tables, as I believe nested cursors would be much too slow (I ran a simple test to confirm this).
I guess I'll have to get in a temporary table, the starting point and the end point of each cable using SDO_LRS. GEOM_SEGMENT_START_PT and SDO_LRS. GEOM_SEGMENT_END_PT, as well as the area ID. Join the table to itself, and then use SDO_GEOM. SDO_DISTANCE to work on what points are close together (for example less than one meter). However, I'm fighting to describe a step by step process.
Anyone has any ideas that can help?
(Oracle 11g)
Examples of data to illustrate the problem:
create table line_location (lineid number,
geometry sdo_geometry);
create table (ID, areaid) line;
-a cable in the box 1, 2 in area 4, etc.
insert into a values (1, 1) line;
insert into values of line (2, 4);
insert into values of line (3, 4);
insert into a values (4, 3) line;
insert into values of line (5, 3);
insert into a values (6, 3) line;
insert into values of line (7, 2);
insert into values of line (8: 2);
insert into a values (9, 2) line;
insert into values of line (10, 2);
-in reality, the lines are not necessarily straight and simple as these...
insert into line_location values (1, MDSYS. SDO_GEOMETRY (2002,3785, NULL, MDSYS. SDO_ELEM_INFO_ARRAY (1,2,1), MDSYS. SDO_ORDINATE_ARRAY (10,1,10,4))); -zone 1
insert into line_location values (2, MDSYS. SDO_GEOMETRY (2002,3785, NULL, MDSYS. SDO_ELEM_INFO_ARRAY (1,2,1), MDSYS. SDO_ORDINATE_ARRAY (3,9,5,9))); -zone 4
insert into line_location values (3, MDSYS. SDO_GEOMETRY (2002,3785, NULL, MDSYS. SDO_ELEM_INFO_ARRAY (1,2,1), MDSYS. SDO_ORDINATE_ARRAY (5,9,5,10))); -zone 4
insert into line_location values (4, MDSYS. SDO_GEOMETRY (2002,3785, NULL, MDSYS. SDO_ELEM_INFO_ARRAY (1,2,1), MDSYS. SDO_ORDINATE_ARRAY (1,1,2,1))); -zone 3
insert into line_location values (5, MDSYS. SDO_GEOMETRY (2002,3785, NULL, MDSYS. SDO_ELEM_INFO_ARRAY (1,2,1), MDSYS. SDO_ORDINATE_ARRAY (2,3,2,1))); -zone 3
insert into line_location values (6, MDSYS. SDO_GEOMETRY (2002,3785, NULL, MDSYS. SDO_ELEM_INFO_ARRAY (1,2,1), MDSYS. SDO_ORDINATE_ARRAY (2,3,3,3))); -zone 3
insert into line_location values (7, MDSYS. SDO_GEOMETRY (2002,3785, NULL, MDSYS. SDO_ELEM_INFO_ARRAY (1,2,1), MDSYS. SDO_ORDINATE_ARRAY (5,3,5,4))); -zone 2
insert into line_location values (8, MDSYS. SDO_GEOMETRY (2002,3785, NULL, MDSYS. SDO_ELEM_INFO_ARRAY (1,2,1), MDSYS. SDO_ORDINATE_ARRAY (4,4,5,4))); -zone 2
insert into line_location values (9, MDSYS. SDO_GEOMETRY (2002,3785, NULL, MDSYS. SDO_ELEM_INFO_ARRAY (1,2,1), MDSYS. SDO_ORDINATE_ARRAY (5,9,6,4))); -zone 2
insert into line_location values (10, MDSYS. SDO_GEOMETRY (2002,3785, NULL, MDSYS. SDO_ELEM_INFO_ARRAY (1,2,1), MDSYS. SDO_ORDINATE_ARRAY (5,7,5,9))); -zone 2
create table node_line (node_id number,
line_id number,
endpoint_id number,--1 for starting point, 2 for the end point.
area_id number
);
-expected here. If two lines are less than 0.5, whereas they should share a node.
insert into node_line values (1, 1, 1, 1); -insulated cable in zone 1, starting point node
insert into node_line values (2, 1, 2, 1); -insulated cable in zone 1, point endpoint node
insert into node_line values (3, 2, 1, 4); -zone 4: 2, node starting point of cable
insert into node_line values (4, 2, 2, 4); -zone 4, cable 2, point endpoint node
insert into node_line values (4, 3, 1, 4); -point 2 = cable endpoint node cable 3 start knot, etc.
insert into node_line values (5, 3, 2, 4);
insert into node_line values (6, 4, 1, 3); -node at (1,1)
insert into node_line values (7, 4, 2, 3); -node to (2.1)
insert into node_line (8, 5, 1, 3) values; -node to (2,3)
insert into node_line values (7, 5, 2, 3); -node to (2.1)
insert into node_line (8, 6, 1, 3) values; -node to (2,3)
insert into node_line values (9, 6, 2, 3); -(3.3) node
insert into node_line values (10, 7, 1, 2); -node to (5.3)
insert into node_line values (11, 7, 2, 2); -node to (5.4)
insert into node_line (12, 7, 1, 2) values; -node to (4.4)
insert into node_line values (11, 7, 2, 2); -node to (5.4)
insert into node_line (13, 7, 1, 2) values; -node to (5.9)
insert into node_line (14, 7, 2, 2) values; -node (6.4)
insert into node_line values (15, 7, 1, 2); -node to (5,7)
insert into node_line (13, 7, 2, 2) values; -node to (5.9)
Thank youHi Ronnie
Have you had a look at the script on the old NET?
This done in a slightly different result structure, what you're after.
I took the time this morning to see a bit optimized.Below you will find the result.
With clues about a couple and the use of the SDO_JOIN rather the sdo_relate this speeds up considerably.
I had tested on a 600 k line objects (which is not 4 million I know) and is reasonable ok on my test (non optimized) environment.On the "1 metre" close to each other, I would have supported itself by setting the tolerance appropriately, so
There should be no reason to perform within the distance checking. Obviously that permitting the resolution of your data.Have a look at.
Note that the final table is different in their structure, but this needs to be easily adjusted in the script if your node_line table must be exactly like you defined.
Luke
-drop the existing SEQ_TOPO
sequence of fall SEQ_TOPO;
-create sequences with caching
CREATE SEQ_TOPO CACHE 2000 SEQUENCES;
commit;
-drop temporary table
drop table temp_nodes cascade constraints;
-create temporary table and fill it with startponts and a field saying this are implemented, as X, Y, as we use it later to remove duplicates in a nonspatial way
create the table temp_nodes
as
Select a.lineid, a.areaid, sdo_geometry (2001, a.node.sdo_srid, SDO_POINT (t.X, t.Y, null), null, null) as a node, SEQ_TOPO.nextval node_id, the from ' AS STEND, t.x, t.y
Of
(select lineid, areaid, node sdo_lrs.geom_segment_start_pt (geometry) of line_location, where the LINE line_location.lineid = line.line_id), TABLE (SDO_UTIL. GETVERTICES (a.Node)) t;
commit;
-Insert the end points in the temporary table
insert into temp_nodes
Select a.lineid, a.areaid, sdo_geometry (2001, a.node.sdo_srid, SDO_POINT (t.X, t.Y, null), null, null) as a node, SEQ_TOPO.nextval node_id, 'E' AS STEND, t.x, t.y
Of
(select lineid, areaid, node sdo_lrs.geom_segment_end_pt (geometry) of line_location, where the LINE line_location.lineid = line.line_id), TABLE (SDO_UTIL. GETVERTICES (a.Node)) t;
commit;
-insert user_sdo_geom_metadata and have created for temp_nodes index
-adjust with appropriate metadata to srid, high and lowebounds values and the tolerance of your dataset
-Here the tolerance is set at 1 meter, this way there is no need to use a distance, let tolerance help us here
-Obviously this can work if tolerance is smaller, then the distance between the start and end of the link itself.
delete from user_sdo_geom_metadata where table_name = 'TEMP_NODES ';
INSERT INTO user_sdo_geom_metadata VALUES ("TEMP_NODES", "NODE", SDO_DIM_ARRAY (SDO_DIM_ELEMENT ('X', 0, 1000000, 1), SDO_DIM_ELEMENT ('Y', 0, 100000, 1)), 3785);
-create spatial indexes with gtype = POINT to use internal optimization
Drop index node_sx;
CREATE INDEX node_sx ON temp_nodes (node) INDEXTYPE IS MDSYS. SPATIAL_INDEX PARAMETERS ('sdo_indx_dims = 2, layer_gtype = POINT');
-create indexes on X, Y combination to accelerate "eliminating duplicates" (in the group by) is actually a "select unique" rather that remove duplicates
CREATE INDEX INDEX1 ON TEMP_NODES (X, Y);
CREATE the INDEX INDEX2 ON TEMP_NODES (node_id);
-create the final node table with unique nodes of the temporary table, x, to y could be omitted
create the table node_topo
as
Select a.nodeid, t.node, t.x, t.y
Of
(
Select min (node_id) as nodeid
Of
temp_nodes
Group x, Y
) an inner join
temp_nodes t
on (a.nodeid = t.node_id)
;
commit;
-insertion of metadata information
delete from user_sdo_geom_metadata where table_name = 'NODE_TOPO ';
INSERT INTO user_sdo_geom_metadata VALUES ("NODE_TOPO", "NODE", SDO_DIM_ARRAY (SDO_DIM_ELEMENT ('X', 0, 1000000, 1), SDO_DIM_ELEMENT ('Y', 0, 100000, 1)), 3785);
-create spatial indexes on the table to end node with gtype = POINT (internal optimization)
Drop index node_topo_sx;
CREATE INDEX node_topo_sx ON NODE_TOPO (node) INDEXTYPE IS MDSYS. SPATIAL_INDEX PARAMETERS ('sdo_indx_dims = 2, layer_gtype = POINT');
-create table node_link using SDO_JOIN between end node final tables and temp
-the NAYINTERACT should take care of the "alignment" as the tolerance will be applied
create the table node_line
as
Select lineid, max (st_ID) START_NODE_ID, max (en_ID) END_NODE_ID, max (areaid) AREAID
Of
(
SELECT b.lineid, case when b.stend = s ' THEN a.nodeid 0 otherwise end st_ID,.
cases where b.stend = 'E' THEN a.nodeid 0 otherwise end en_ID, areaid
TABLE (SDO_JOIN ('NODE_TOPO', 'NODE',
"TEMP_NODES", "NODE",
"(masque = ANYINTERACT')) c,"
node_topo has,
temp_nodes b
WHERE c.rowid1 = a.rowid AND c.rowid2 = b.rowid
)
Lineid group;
commit;
-items temp
drop table temp_nodes cascade constraints;
delete from user_sdo_geom_metadata where table_name = 'TEMP_NODES ';
commit;
seq_topo sequence of fall;
commit;
-
MapPoint 2010 Spatial data import
Team,
Can you please help currently using trial of 2013 has the same problem of spatial data import will import created since 2 weeks ESRI Shapefiles, but all newly created files or MapPoint 2010 today at present or if someone else creates will not matter.
I get an error message:
Error in Applysahpe properties
Error number-2147217865
Error Description The Mocrosoft Jet database engine object could not be found. "" "" NH1121 the file, try to open.
Make sure that the objects exist.
I tried to uninstall and reinstall both versions of Mappoint 2010 and Mappoint 2013 trial still open data 2 weeks ago but won't file since the last day little matter that someone creates or I create today. even remove the folder in Program files and cleaning of the folder %Temp%.
Hello
Check with the help of MapPoint and in the MapPoint Forums.
Highway, Streets & Trips, MapPoint - Forum
http://social.Microsoft.com/forums/is/streetsandtrips/threadsMapPoint - Support
http://www.Microsoft.com/MapPoint/en-us/support.aspxSupport for MapPoint, streets & trips and Highway
http://support.Microsoft.com/ph/851I hope this helps.
Rob Brown - Microsoft MVP<- profile="" -="" windows="" expert="" -="" consumer="" :="" bicycle="">-><- mark="" twain="" said="" it="">->
-
Export to 'insert' spatial data
I use a database of the R1 11 g sqldeveloper - 1.1.3.with. I try to get the instructions for inserting a table that I loaded the Shapefile (including the SDO_GEOMETRY).
I get inert statements without any space as given below:
Insert in YOU (TRID, GEOM) values (100,'MDSYS.) SDO_GEOMETRY');
I use this method: make a right click on the table of the "tree of the Explorer of connections", select export data, and insert...
Y at - it another way to export the spatial data to insert sql.Wells 1.1.3 is quite old, try upgrading to the latest version.
-
the insertion of the spatial data error
Hi all
I have a problem when the spatial data is inserted. could someone help me please to solve this.
I created a table with spatial index.
When I insert data from another spatail table that does not have a clue, I get an error.INSERT INTO USER_SDO_GEOM_METADATA VALUES('SDO_CA_test', 'CA', SDO_DIM_ARRAY( MDSYS.SDO_DIM_ELEMENT ('LON', 71.19545, 120.35101, 0.000005), MDSYS.SDO_DIM_ELEMENT ('LAT', 12.1145, 26.58041, 0.000005)), 8687); CREATE INDEX IO_CA_test ON SDO_CAR_test(CA) INDEXTYPE IS MDSYS.SPATIAL_INDEX PARAMETERS ('SDO_COMMIT_INTERVAL=10000 SDO_RTR_PCTFREE = 0');
I think that there are some incorrect data that are not with my index defination.insert into sdo_ca_test as select * from base_sdo; ORA-29875 Failed in the ececution of the ODCINDEXINSERT routine ORA-13354 incorrect offset in ELEM_INFO_ARRAY ORA_06512 at MDSYS.SDO_INDEX_METHOD_101 line. 709
How can I check these invalid data in base_sdo table. The base_sdo table has no index.
Rgds
SAZ
Published by: Saaz Ena on December 21, 2009 18:16You can try SDO_GEOM. VALIDATE_GEOMETRY_WITH_CONTEXT
or SDO_GEOM. VALIDATE_LAYER_WITH_CONTEXT? for exampleSelect * from base_sdo where
SDO_GEOM. VALIDATE_GEOMETRY_WITH_CONTEXT (a.CA, 0,000005). = "TRUE"; -
Spatial data acquisition Oracle through WFS
Hello
I did research for a while and am a bit confused.
I have Oracle Spatial 11 g with geometry data and would like to be able to retrieve these data through a WFS for a viewing application.
Here's where I'm confused:
(1) space offers a WFS service must be configured. If I set this up, I would be able to access the data through getFeature URL commands? The documentation I see for them has applications for getFeature in the form of XML files, so I don't know if I can do it. Also, it seems that the service returns the .log files, but I think not I want GML...
If this is the option that I must take the tutorial to configure OC4J and Web Services are for a Linux (http://www.oracle.com/technology/obe/11gr1_db/datamgmt/spatialws/spatialws.htm)--are there one for 64-bit Windows?
(2) do I need an another "application layer" to enable support for this URL? I know that MapServer can use URL requests... can I run against the data in my PB and forget the WFS Oracle?
(3) MapViewer seems to work with themes WFS and process applications through Java and SQL... It's another option?
I'm basically confused as to where everything is and what I should focus on to get my spatial data of the DB through a WFS. Any help on this would be greatly appreciated!
Thank you!Yes, with a server Oracle Spatial and logic of the Web, you can get support for WFS.
Note that you must space Oracle 11 GR 2 to work with the logical Web server.MapVeiwer can only consume the WFS themes, so it does not help with what you want to do here.
Siva
-
MapViewer not able to query spatial data?
Hello, I would like to ask questions about how to query non-space data with MapViewer.
When I read the manual, I found a method using JavascriptAPI. The doQuerymethod.
Can someone help me, give examples on how to use this method? Because I'm so confuse how to use it.
Is there another method of application not database using MapViewer?
I use JSP to build my application and I prefer a method in the Javascript API.
Thank you very much.
I really appreciate your help.With the doQuery method, you can retrieve values of attribute in a table. The first row of the returned String table attribute names, and the following lines have the attribute values. The following code is an example of querying the table of STATES to get the name of the State and the population value.
/* SELECT state, tot_pop FROM states The following illustrates the first rows in the returned String[][]: STATE TOTPOP Alabama 4040586 Alaska 550043 Arizona 3665228 The first row has the attribute names. */ String [][]query = mapViewer.doQuery("mvdemo", "select state, totpop from states"); int nlin = 0; int ncol = 0; String name = null; double totPop = 0.; if(query != null) { nlin = query.length; ncol = query[0].length; for(int i=1;i
[0];try{totPop = Double.parseDouble(query[i][1]);} catch (Exception ex){totPop = 0.;} System.out.println("[State] " + name + " [Population] " + totPop);}} Joao -
Hi Experts,
A very happy new year to all of you (a little in advance)!
I have a table where I have the id of employee and the task assigned with the start dates and end dates. Overlap in the dates of the tasks is a data delivers however I know how to spot them and eliminate. There is therefore no date of tasks that overlap
Employee_id
Task_No
Task_Start_date
Task_End_Date
Examples of data
1 T1 1 January 2014 February 28, 2014
1 T2 March 1, 2014 31 December 2014
2 T1 23 January 2014 31 December 2014
2 T2 1 January 2015 December 31, 2073 (means end of time)
3 T3 1 January 2014 July 15, 2014
3 T4 August 1, 2014 31 December 2014
T5 4 1 January 2014 December 31, 2073
I want to design a query where I provide the end date and it will list all the employees that are free for the same day from 1 January 2014. Thus, for example, if I give December 31, 2014, it will list the
EmpId (first day where the employee is free)
2 January 1, 2014
3 July 16, 2014
If I give the end = end date of time(31-Dec-2013), result-
EmpId (first day where the employee is free)
1 January 1, 2015
2 January 1, 2014
3 July 16, 2014
If I give the end = date January 31, 2014, expected - result
EmpId (first day where the employee is free)
1 January 1, 2015
I conceived after the request, but he intercepted not 2 employee ID. Also, it provides no flexibility to change end date-
Select *.
from (select employe_id,
task_start_date,
task_end_date,
lag (task_end_date, 1, task_start_date) on prev_end_date (partition by employee_id arrested by task_start_date)
of shop.employee_tasks
where task_end_date > = trunc (sysdate))
where task_start_date - prev_end_date > 1
Thanks in advance!
Kind regards
This is an example of what I call the query 'free time': you have the dates when you are busy and you want the dates where you are free.
You can find a nice solution for the problem of base here: ask Tom "SQL Query to find gaps in the date ranges" (search for solution of Anthony Boucher). Please note that this solution works even with the date ranges overlap.
To apply the solution here, first create the test data (please do it yourself in the following questions).
create table t(Employee_id, task_no, Task_Start_date, task_end_date) as select 1, 'T1', to_date('01-jan-2014'), to_date('28-feb-2014') from dual union all select 1, 'T2', to_date('01-Mar-2014'), to_date('31-Dec-2014') from dual union all select 2, 'T1', to_date('23-jan-2014'), to_date('31-dec-2014') from dual union all select 2, 'T2', to_date('01-jan-2015'), to_date('31-dec-2073') from dual union all select 3, 'T3', to_date('01-jan-2014'), to_date('15-jul-2014') from dual union all select 3, 'T4', to_date('01-aug-2014'), to_date('31-dec-2014') from dual union all select 4, 'T5', to_date('01-Jan-2014'), to_date('31-Dec-2073') from dual;
In the query, you must add records for yesterday and for the "end date" you want. This allows you to "free time" before and after the date ranges in your table.
Now, you partition by order of Task_Start_date and employe_id. Using the analytical function of the max (task_end_date), you get the last date of end so far. Add 1 and you get the first time (maybe). To make sure that the date is free, it must be before the next start date.
variable end_date varchar2(64) exec :end_date := '31-Dec-2073'; -- with boundaries as ( select trunc(sysdate)-1 task_start_date, trunc(sysdate)-1 task_end_date from dual union all select to_date(:end_date)+1, to_date(:end_date)+1 from dual ), data as ( select * from t where task_end_date >= trunc(sysdate) and task_start_date < :end_date union all select distinct a.employee_id, null, b.task_start_date, b.task_end_date from t a, boundaries b ) select employee_id, min(free_start) free_start from ( select employee_id, max(task_end_date) over (partition by employee_id order by task_start_date)+1 free_start, lead(task_start_date) over (partition by employee_id order by task_start_date)-1 free_end from data ) where free_start <= free_end group by employee_id;
EMPLOYEE_ID FREE_START 1 JANUARY 1, 15 2 1 JANUARY 14 3 16 JULY 14 -
How to create spatial data from scratching
Dear gurus,
I am beginner in SI OBIEE, I tried to save the table space map (figure OBIEE_NAVTEQ).
But I have no idea how do.
I see the example:
INSERT INTO (TABLE_NAME, COLUMN_NAME, DIMINFO, SRID) user_sdo_geom_metadata
VALUES ("cola_markets", "geometry",
SDO_DIM_ARRAY (-20 X 20 grid)
SDO_DIM_ELEMENT ('X', 0, 20, 0.005),
SDO_DIM_ELEMENT ('Y', 0, 20, 0.005)
),
NULL VALUE
);
INSERT INTO cola_markets
VALUES (2, 'cola_b', 200,)
SDO_GEOMETRY (2003,-two-dimensional polygon)
NULL,
NULL,
SDO_ELEM_INFO_ARRAY (1,1003,1),-a polygon (ring outside polygon)
SDO_ORDINATE_ARRAY (5.1 8.1 8.6, 5.7, 5.1)
)
);
***
-What is a SDO_DIM_ELEMENT?
How to know the value of SDO_DIM_ELEMENT ('X', 0, 20, 0.005) of the card? y at - it a tool that could enable?
-What different SDO_DIM_ELEMENT, SDO_ELEM_INFO_ARRAY and SDO_ORDINATE_ARRAY?
How to set the SDO_ELEM_INFO_ARRAY and SDO_ORDINATE_ARRAY of the card?
Any help really really appreciated
Concerning
JOEJoe,
Try to use the GeoRaptor for SQL Developer extension. Download SQL Developer of RTO and then get GeoRaptor from Sourceforge.
What is a SDO_DIM_ELEMENT?
You logically implies that your example shows how do it manually using SQL.
No hard and fast rule. Usually most of the people would determine the rectangular extent (or MBR) their data and enter the RADIUS X and Y, as determined by the coordinates lower left and upper right.
For geodetic data (IE long/lat) more simply placed in the scope of the world full of-180, 180 and - 90.90. But others within the scope of their data. Read the documentation on that.
How to know the value of SDO_DIM_ELEMENT ('X', 0, 20, 0.005) of the card? y at - it a tool that could enable?
See above. Try any package of GIS, or GeoRaptor or
select SDO_GEOM.SDO_MIN_MBR_ORDINATE(mbr,1) as minx, SDO_GEOM.SDO_MIN_MBR_ORDINATE(mbr,3) as maxx, SDO_GEOM.SDO_MIN_MBR_ORDINATE(mbr,2) as miny, SDO_GEOM.SDO_MIN_MBR_ORDINATE(mbr,4) as maxx from (select sdo_aggr_mbr(geom) as mbr from PLANNING_NEIGHBORHOODS); -- Result -- MINX MAXX MINY MAXX ---------- ---------- ---------- ---------- 5979385.646 6024741 2085840.482 2131294
Or...
select 'SDO_DIM_ARRAY(' || 'SDO_DIM_ELEMENT(''X'','|| SDO_GEOM.SDO_MIN_MBR_ORDINATE(mbr,1) || ',' || SDO_GEOM.SDO_MIN_MBR_ORDINATE(mbr,3) || ',0.05' || '),SDO_DIM_ELEMENT(''Y'',' || SDO_GEOM.SDO_MIN_MBR_ORDINATE(mbr,2) || ',' || SDO_GEOM.SDO_MIN_MBR_ORDINATE(mbr,4) || ',0.05))' as dimarray from (select sdo_aggr_mbr(geom) as mbr from PLANNING_NEIGHBORHOODS); -- Result -- DIMARRAY ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- SDO_DIM_ARRAY(SDO_DIM_ELEMENT('X',5979385.6456569,6024740.99982789,0.05),SDO_DIM_ELEMENT('Y',2085840.48152296,2131294.0001958,0.05))
The sdo_tolerance in the SDO_DIM_ELEMENT's your guess as to degree of accuracy of the data are. Reflect on how close two points are allowed to be before they are considered equal. 0.05 is 5cm (standard for long/lat data) and means two summits cannot be narrower than that otherwise you will get an error the summits in double (13356) during the validation of your data using sdo_geom.validate_geometry ().
what different SDO_DIM_ELEMENT
The metadata that describe the extent of your data. Written correct spatiali to user_sdo_geom_metadata is it necessary for indexing.
SDO_ELEM_INFO_ARRAY and SDO_ORDINATE_ARRAY?
objects that are used to describe a space object.
How to set the SDO_ELEM_INFO_ARRAY and SDO_ORDINATE_ARRAY of the card?
I don't think that it is the starting point to reinvent the wheel by trying to explain what is well explained in the Oracle documentation.
Therefore, I suggest that you read Chapter 1 spatial Concepts (http://docs.oracle.com/cd/E11882_01/appdev.112/e11830/sdo_intro.htm#i884907) and then come back and ask us questions.
concerning
SimonPublished by: Simon Greener on March 13, 2013 17:23
-
Search weekend Dates through query
I'm setting up a report in the APEX to show all the JEs which have been posted on the weekends. I can query all GL records and adjust the date, but I have no odea how to identify the dates that fall on Saturday or Sunday and. We run EBS 11i. I can send the basic query if that helps.
Any help would be appreciated.Assuming that 'weekend' always means Saturday and Sunday and that your sessions always use English NLS settings,
SELECT * FROM your_gl_table WHERE TO_CHAR( journal_entry_date, 'fmDAY' ) IN ('SATURDAY', 'SUNDAY' );
or
SELECT * FROM your_gl_table WHERE TO_CHAR( journal_entry_date, 'D' ) IN ('1' '7' );
Justin
-
I need to have a list of values for the period name. Need to have values > AUg-2002 to sysdate (tax early August to August)
How can I get a list of the values of Aug-2003 sysdate (he must have next year so until Aug-2012)
Please help me to change the query to get the aug-sysdate 2003
EXPECTEDActual select period_name from gl_periods Period-name AUG-2001 AUG-2002 AUG-2003 AUG-2004 AUG-2005 AUG-2006 AUG-2007 AUG-2008 AUG-2009 AUG-2010 AUG-2011 AUG-2012 AUG-2013 AUG-2014 AUG-2015 AUG-2016 AUG-2017 AUG-2018 AUG-2019 AUG-2020
Published by: 893185 on December 14, 2011 09:55AUG-2003 AUG-2004 AUG-2005 AUG-2006 AUG-2007 AUG-2008 AUG-2009 AUG-2010 AUG-2011 AUG-2012
Hello
893185 wrote:
I need to have a list of values for the period name. Need to have values > AUg-2002 to sysdate (tax early August to August)The financial year begins on 1 August and ends July 31? Who wouldn't be August to July , not August to August ?
Sorry, we don't know what you want.
Here's a way to get the period_name of the accounting year:
SELECT TO_CHAR ( ADD_MONTHS (SYSDATE, 5) , '"AUG-"yyyy' ) AS this_period_name FROM dual;
The 'magic number' is 5 as your fiscal year begins 5 months before the calendar year.
You have a table that contains a period_name, and you will have to filter it with this value? If so
... WHERE period_name BETWEEN 'AUG-2003' AND TO_CHAR ( ADD_MONTHS (SYSDATE, 5) , '"AUG-"yyyy' )
I hope that answers your question.
If not, post a small example of data (CREATE TABLE and only relevant columns, INSERT statements) for all tables and also post the results desired from these data.
Explain, using specific examples, how you get these results from these data.
Always tell what version of Oracle you are using. -
OIM 11 g - adjustment process form data through query API
Hello
I would define the shape of process via the API data request. I have a user configured in AD. Now I would like to define form data to process (title) through the API request. I have imported the necessary data and that it works through UI request. But when I try to do this through query API, the value is not updated in the form of process. Can anyone help with a code example to achieve this functionality? Thank you.You define the data of application correctly when creating on-demand via the API? There is also the correct attribute in all reference maps data? What about the attribute itself? It is in the form of parent or child?
Looking at the title of the ad must be the parent form data, so use the following code as an example to update all data correctly:long resKey = 0L; String str = null; String resourceKey = null; Map
searchMap = new HashMap (); tcResultSet resultSet = null; RequestData requestData = null; Beneficiary beneficiary = null; RequestBeneficiaryEntity entity = null; List beneficiaryList = null; List entityList = null; List entityAttrList = null; searchMap.put(RESOURCE_ATTR_NAME, RESOURCE); resultSet = _resourceService.findObjects(searchMap); resKey = resultSet.getLongValue(RESOURCE_ATTR_KEY); resourceKey = Long.toString(resKey); RequestBeneficiaryEntityAttribute parantAttr = new RequestBeneficiaryEntityAttribute(); parantAttr.setType(TYPE.String); parantAttr.setName("Title"); parantAttr.setValue("Mr."); entityAttrList = new ArrayList (); entityAttrList.add(parantAttr); entity = new RequestBeneficiaryEntity(); entity.setEntityKey(resourceKey); entity.setEntityType(RequestConstants.RESOURCE); entity.setEntitySubType(RESOURCE); entity.setEntityData(entityAttrList); entityList = new ArrayList (); entityList.add(entity); beneficiary = new Beneficiary(); beneficiary.setBeneficiaryType(Beneficiary.USER_BENEFICIARY); beneficiary.setBeneficiaryKey(USER_KEY); beneficiary.setTargetEntities(entityList); requestData = new RequestData(); requestData.setRequestTemplateName(TEMPLATE); requestData.setJustification("Test"); requestData.setBeneficiaries(beneficiaryList); RequestService reqsrvc = client.getService(RequestService.class); str = reqsrvc.submitRequest(requestData); System.out.println("Value from submitRequest : '" + (str != null ? str : null) + "'"); Just a dummy code, but it's the overall structure. Once you have submitted the request and commissioning successful, you should see the data in the form of process.
HTH,
BBEdited to add the return code by: bbagaria on Sep 5, 2011 10:18
-
cache memory buffer cache vs. data blocks which can be
Hi guys,.
Do means that, if we have 2 GB of cache buffers allocated to Oracle, we can only store up to 2 GB of data in memory?
Thank youdbaing wrote:
Hi guys,.Do means that, if we have 2 GB of cache buffers allocated to Oracle, we can only store up to 2 GB of data in memory?
Yes, this means that you can at any time, can have 2 GB of blocks cached in your memory.
Aman...
-
BI Publisher data model / query question
Hello
I'm designing a report of BI Publisher where I need to show negative numbers in red. I'm perfectly fine with the help of the conditional formatting to do this (just using the default value is conditional formatting in the add-in in MS Word, that generates code like this:)
<? If: number(Cost_-_MTD) < 0? > <? attribute@InContext:color;' Red '? > <? end if? >
BUT...
I have columns returning who sometimes have a NULL value in them, and when they have the value NULL, it causes the foregoing to the pipe upwards. So I thought, 'I'll just add IfNull() in queries defined in the model data, and who will take care of the problem... "
that works - a little. Now, my problem is if I have to go back and change the query for some reason, I get an error "query cannot be parsed, please modify the query manually. I really don't want to do that, I wish that other developers do NOT have to manually change the queries.
So my question is - is it possible to add in the IfNull() directly in the query designer, so it should not be changed manually from that moment?
p.s. using IfNull OBIEE server as our data source.
Thanks in advance,
ScottI don't think there is a way to add the ifnull condition in the query designer. So, you will need to manually change the query...
In your model so you can add additional control like this:
<0?>...Thank you!
Published by: BIPuser on Sep 17, 2010 09:20
0?> -
keep the Oracle Spatial data in memory
Can I keep data in memory using TimesTen Oracle Spatial (including metadata and procedures and related functions)?It is possible.
Maybe you are looking for
-
Hello, I was trying to transfer the contents of my iPAD to a Win10 computer without using iTunes. So I plugged the iPAD in the Win10 PC using the USB cable. The PC has then install drivers from Apple, but after that, there was a continuous beep from
-
Installation question on Satellite M30 PSM30E USB mass storage device
Hi people, I get an error message when I try to install new hardware on my laptop. Windows XP is trying to find the drivers and then comes up with the following error after a few minutes. The software starts to install but then comes with the followi
-
Mac pro (end 2013) forget screens - 6 monitors
Hello I have a 6 monitor Setup, with different resolutions 3 x 1080 p + 2 x 2160 x 1440 p p + 1. On most days things work very well! I only put the display to sleep. When I wake up the screens I often lose the position of windows, if anyone has a sug
-
Hello I have a signal being played, I should activate another process, if there is no difference in the value of the last 100 measurements of the signal (say about 1% deviation). Can anyone help. Best regards Hannah
-
Music score print sharpening between 1280 HP and HP 7610
When you print a musical score, apartment of the note heads also the sharpness of the moat (these lines) are of vital importance. So far my old (now regret dumped) HP 1280 did a great job on this topic. But after countless attempts, I can not say tha