Revision 924

View differences:

org.gvsig.oracle/tags/org.gvsig.oracle-2.0.153/org.gvsig.oracle.provider/src/test/resources/org/gvsig/oracle/dal/operations/sql/fetchFeatureProviderByReference.sql
1

  
2
-- fetchFeatureProviderByReference SQL
3
SELECT 
4
    "P1"."TEST"."ID", "P1"."TEST"."Byte", "P1"."TEST"."Bool1", "P1"."TEST"."Long", 
5
    "P1"."TEST"."Timestamp", "P1"."TEST"."Date", "P1"."TEST"."Time", 
6
    "P1"."TEST"."Bool2", "P1"."TEST"."String", "P1"."TEST"."Bool3", "P1"."TEST"."Double", 
7
    "P1"."TEST"."Bool4", "P1"."TEST"."Float", "P1"."TEST"."Bool5", "P1"."TEST"."Decimal", 
8
    NVL2(("P1"."TEST"."Geometry"),("P1"."TEST"."Geometry").Get_WKB(),NULL) 
9
FROM "P1"."TEST" 
10
WHERE ( ("P1"."TEST"."ID") = (?) ) AND  ROWNUM <= 1;
org.gvsig.oracle/tags/org.gvsig.oracle-2.0.153/org.gvsig.oracle.provider/src/test/resources/org/gvsig/oracle/dal/operations/sql/calculateEnvelope.sql
1

  
2

  
3

  
4
-- Count SQL
5
--SELECT NVL2((SDO_AGGR_MBR("Geometry")),(SDO_AGGR_MBR("Geometry")).Get_WKB(),NULL) 
6
--FROM "public"."test" 
7
--WHERE ( ("Geometry") IS NOT NULL );
8

  
9
SELECT NVL2((SDO_AGGR_MBR("P1"."TEST"."Geometry")),(SDO_AGGR_MBR("P1"."TEST"."Geometry")).Get_WKB(),NULL) 
10
FROM "P1"."TEST" 
11
WHERE ( ("P1"."TEST"."Geometry") IS NOT NULL );
org.gvsig.oracle/tags/org.gvsig.oracle-2.0.153/org.gvsig.oracle.provider/src/test/resources/org/gvsig/oracle/dal/operations/sql/createTable.sql
1

  
2
-- Se usa en TestCreateTable.
3
-- Se corresponde con el fichero CSV "testCreateSource1.csv".
4

  
5
CREATE TABLE "P1"."TEST" (
6
    "ID" NUMBER(9,0), 
7
    "Byte" NUMBER(3,0) DEFAULT NULL, 
8
    "Bool1" CHAR(1) DEFAULT NULL, 
9
    "Long" NUMBER(18,0) DEFAULT NULL, 
10
    "Timestamp" TIMESTAMP DEFAULT NULL, 
11
    "Date" DATE DEFAULT NULL, 
12
    "Time" TIMESTAMP DEFAULT NULL, 
13
    "Bool2" CHAR(1) DEFAULT NULL, 
14
    "String" NVARCHAR2(30) DEFAULT NULL, 
15
    "Bool3" CHAR(1) DEFAULT NULL, 
16
    "Double" BINARY_DOUBLE DEFAULT NULL, 
17
    "Bool4" CHAR(1) DEFAULT NULL, 
18
    "Float" BINARY_FLOAT DEFAULT NULL, 
19
    "Bool5" CHAR(1) DEFAULT NULL, 
20
    "Decimal" NUMBER(6,3) DEFAULT NULL, 
21
    "GEOMETRY"  SDO_GEOMETRY DEFAULT NULL 
22
);
23

  
24

  
25
ALTER TABLE "P1"."TEST" ADD PRIMARY KEY ("ID");
26

  
27
DELETE FROM MDSYS.OGIS_GEOMETRY_COLUMNS 
28
WHERE F_TABLE_SCHEMA = 'P1' 
29
    AND F_TABLE_NAME = 'TEST' 
30
    AND F_GEOMETRY_COLUMN = 'GEOMETRY';
31

  
32
INSERT INTO MDSYS.OGIS_GEOMETRY_COLUMNS (
33
    F_TABLE_SCHEMA, F_TABLE_NAME, F_GEOMETRY_COLUMN, GEOMETRY_TYPE) 
34
    VALUES ('P1', 'TEST', 'GEOMETRY', 1);
35

  
36
-- Create table with CLOB
37

  
38
CREATE TABLE "P1"."TEST" (
39
    "ID" NUMBER(9,0), 
40
    "Byte" NUMBER(3,0) DEFAULT NULL, 
41
    "Bool1" CHAR(1) DEFAULT NULL, 
42
    "Long" NUMBER(18,0) DEFAULT NULL, 
43
    "Timestamp" TIMESTAMP DEFAULT NULL, 
44
    "Date" DATE DEFAULT NULL, 
45
    "Time" TIMESTAMP DEFAULT NULL, 
46
    "Bool2" CHAR(1) DEFAULT NULL, 
47
    "String" NCLOB DEFAULT NULL, 
48
    "Bool3" CHAR(1) DEFAULT NULL, 
49
    "Double" BINARY_DOUBLE DEFAULT NULL, 
50
    "Bool4" CHAR(1) DEFAULT NULL, 
51
    "Float" BINARY_FLOAT DEFAULT NULL, 
52
    "Bool5" CHAR(1) DEFAULT NULL, 
53
    "Decimal" NUMBER(6,3) DEFAULT NULL, 
54
    "GEOMETRY"  SDO_GEOMETRY DEFAULT NULL 
55
);
56

  
57
ALTER TABLE "P1"."TEST" ADD PRIMARY KEY ("ID");
58

  
59
DELETE FROM MDSYS.OGIS_GEOMETRY_COLUMNS 
60
WHERE F_TABLE_SCHEMA = 'P1' 
61
    AND F_TABLE_NAME = 'TEST' 
62
    AND F_GEOMETRY_COLUMN = 'GEOMETRY';
63

  
64
INSERT INTO MDSYS.OGIS_GEOMETRY_COLUMNS (
65
    F_TABLE_SCHEMA, F_TABLE_NAME, F_GEOMETRY_COLUMN, GEOMETRY_TYPE) 
66
    VALUES ('P1', 'TEST', 'GEOMETRY', 1);
67

  
68
-- Create table with large string
69

  
70
CREATE TABLE "P1"."TEST" (
71
    "ID" NUMBER(9,0), 
72
    "Byte" NUMBER(3,0) DEFAULT NULL, 
73
    "Bool1" CHAR(1) DEFAULT NULL, 
74
    "Long" NUMBER(18,0) DEFAULT NULL, 
75
    "Timestamp" TIMESTAMP DEFAULT NULL, 
76
    "Date" DATE DEFAULT NULL, 
77
    "Time" TIMESTAMP DEFAULT NULL, 
78
    "Bool2" CHAR(1) DEFAULT NULL, 
79
    "String" NVARCHAR2(4086) DEFAULT NULL, 
80
    "Bool3" CHAR(1) DEFAULT NULL, 
81
    "Double" BINARY_DOUBLE DEFAULT NULL, 
82
    "Bool4" CHAR(1) DEFAULT NULL, 
83
    "Float" BINARY_FLOAT DEFAULT NULL, 
84
    "Bool5" CHAR(1) DEFAULT NULL, 
85
    "Decimal" NUMBER(6,3) DEFAULT NULL, 
86
    "GEOMETRY"  SDO_GEOMETRY DEFAULT NULL 
87
);
88

  
89
ALTER TABLE "P1"."TEST" ADD PRIMARY KEY ("ID");
90

  
91
DELETE FROM MDSYS.OGIS_GEOMETRY_COLUMNS 
92
WHERE F_TABLE_SCHEMA = 'P1' 
93
    AND F_TABLE_NAME = 'TEST' 
94
    AND F_GEOMETRY_COLUMN = 'GEOMETRY';
95

  
96
INSERT INTO MDSYS.OGIS_GEOMETRY_COLUMNS (
97
    F_TABLE_SCHEMA, F_TABLE_NAME, F_GEOMETRY_COLUMN, GEOMETRY_TYPE) 
98
    VALUES ('P1', 'TEST', 'GEOMETRY', 1);
99

  
100

  
101
-- Create table with Index 3D geometry
102

  
103
CREATE TABLE "P1"."TEST" (
104
    "ID" NUMBER(9,0), 
105
    "Byte" NUMBER(3,0) DEFAULT NULL, 
106
    "Bool1" CHAR(1) DEFAULT NULL, 
107
    "Long" NUMBER(18,0) DEFAULT NULL, 
108
    "Timestamp" TIMESTAMP DEFAULT NULL, 
109
    "Date" DATE DEFAULT NULL, 
110
    "Time" TIMESTAMP DEFAULT NULL, 
111
    "Bool2" CHAR(1) DEFAULT NULL, 
112
    "String" NVARCHAR2(30) DEFAULT NULL, 
113
    "Bool3" CHAR(1) DEFAULT NULL, 
114
    "Double" BINARY_DOUBLE DEFAULT NULL, 
115
    "Bool4" CHAR(1) DEFAULT NULL, 
116
    "Float" BINARY_FLOAT DEFAULT NULL, 
117
    "Bool5" CHAR(1) DEFAULT NULL, 
118
    "Decimal" NUMBER(6,3) DEFAULT NULL, 
119
    "GEOMETRY"  SDO_GEOMETRY DEFAULT NULL 
120
);
121

  
122
ALTER TABLE "P1"."TEST" ADD PRIMARY KEY ("ID");
123

  
124
DELETE FROM MDSYS.OGIS_GEOMETRY_COLUMNS 
125
WHERE F_TABLE_SCHEMA = 'P1' 
126
    AND F_TABLE_NAME = 'TEST' 
127
    AND F_GEOMETRY_COLUMN = 'GEOMETRY';
128

  
129
INSERT INTO MDSYS.OGIS_GEOMETRY_COLUMNS (
130
    F_TABLE_SCHEMA, F_TABLE_NAME, F_GEOMETRY_COLUMN, GEOMETRY_TYPE) 
131
    VALUES ('P1', 'TEST', 'GEOMETRY', 1001);
132

  
133
CREATE INDEX "SDX_TEST_GEOMETRY" ON "TEST" ("Geometry") INDEXTYPE IS MDSYS.SPATIAL_INDEX PARAMETERS ('SDO_INDX_DIMS=3,LAYER_GTYPE=POINT');
134

  
135
ALTER INDEX "SDX_TEST_GEOMETRY" REBUILD PARAMETERS ('SDO_INDX_DIMS=3,LAYER_GTYPE=POINT');
136

  
137
-- Create table with Index 2D geometry
138

  
139
CREATE TABLE "P1"."TEST" (
140
    "ID" NUMBER(9,0), 
141
    "Byte" NUMBER(3,0) DEFAULT NULL, 
142
    "Bool1" CHAR(1) DEFAULT NULL, 
143
    "Long" NUMBER(18,0) DEFAULT NULL, 
144
    "Timestamp" TIMESTAMP DEFAULT NULL, 
145
    "Date" DATE DEFAULT NULL, 
146
    "Time" TIMESTAMP DEFAULT NULL, 
147
    "Bool2" CHAR(1) DEFAULT NULL, 
148
    "String" NVARCHAR2(30) DEFAULT NULL, 
149
    "Bool3" CHAR(1) DEFAULT NULL, 
150
    "Double" BINARY_DOUBLE DEFAULT NULL, 
151
    "Bool4" CHAR(1) DEFAULT NULL, 
152
    "Float" BINARY_FLOAT DEFAULT NULL, 
153
    "Bool5" CHAR(1) DEFAULT NULL, 
154
    "Decimal" NUMBER(6,3) DEFAULT NULL, 
155
    "GEOMETRY"  SDO_GEOMETRY DEFAULT NULL 
156
);
157

  
158
ALTER TABLE "P1"."TEST" ADD PRIMARY KEY ("ID");
159

  
160
DELETE FROM MDSYS.OGIS_GEOMETRY_COLUMNS 
161
WHERE F_TABLE_SCHEMA = 'P1' 
162
    AND F_TABLE_NAME = 'TEST' 
163
    AND F_GEOMETRY_COLUMN = 'GEOMETRY';
164

  
165
INSERT INTO MDSYS.OGIS_GEOMETRY_COLUMNS (
166
    F_TABLE_SCHEMA, F_TABLE_NAME, F_GEOMETRY_COLUMN, GEOMETRY_TYPE) 
167
    VALUES ('P1', 'TEST', 'GEOMETRY', 1);
168

  
169
CREATE INDEX "SDX_TEST_GEOMETRY" ON "TEST" ("Geometry") INDEXTYPE IS MDSYS.SPATIAL_INDEX PARAMETERS ('SDO_INDX_DIMS=2,LAYER_GTYPE=POINT');
170

  
171
ALTER INDEX "SDX_TEST_GEOMETRY" REBUILD PARAMETERS ('SDO_INDX_DIMS=2,LAYER_GTYPE=POINT');
172

  
org.gvsig.oracle/tags/org.gvsig.oracle-2.0.153/org.gvsig.oracle.provider/src/test/resources/org/gvsig/oracle/dal/operations/sql/dropTable.sql
1

  
2
-- Drop table SQL
3
DROP TABLE "P1"."TEST";
4

  
5
DELETE FROM MDSYS.OGIS_GEOMETRY_COLUMNS WHERE F_TABLE_SCHEMA = 'P1' AND F_TABLE_NAME = 'test';
org.gvsig.oracle/tags/org.gvsig.oracle-2.0.153/org.gvsig.oracle.provider/src/test/resources/org/gvsig/oracle/dal/operations/sql/date.sql
1

  
2
-- Date SQL
3

  
4
SELECT 
5
    "P1"."TEST"."ID", "P1"."TEST"."Byte", "P1"."TEST"."Bool1", "P1"."TEST"."Long", 
6
    "P1"."TEST"."Timestamp", "P1"."TEST"."Date", "P1"."TEST"."Time", "P1"."TEST"."Bool2", 
7
    "P1"."TEST"."String", "P1"."TEST"."Bool3", "P1"."TEST"."Double", 
8
    "P1"."TEST"."Bool4", "P1"."TEST"."Float", "P1"."TEST"."Bool5", "P1"."TEST"."Decimal", 
9
    NVL2(("P1"."TEST"."Geometry"),("P1"."TEST"."Geometry").Get_WKB(),NULL) 
10
FROM "P1"."TEST" 
11
WHERE ( 
12
    (( 
13
        (( ("P1"."TEST"."Time") > (TIMESTAMP '1970-01-01 01:02:03') )) 
14
        AND 
15
        (( ("P1"."TEST"."Time") < (TIMESTAMP '1970-01-01 20:52:55') )) 
16
    )) 
17
    OR 
18
    (( 
19
        (( ("P1"."TEST"."Date") > (DATE '2019-02-17') )) 
20
        AND 
21
        (( ("P1"."TEST"."Date") < (DATE '2020-02-23') )) 
22
    )) 
23
) ORDER BY "P1"."TEST"."ID" ASC;
org.gvsig.oracle/tags/org.gvsig.oracle-2.0.153/org.gvsig.oracle.provider/src/test/resources/org/gvsig/oracle/dal/operations/sql/tableIsEmpty.sql
1

  
2
-- Table is empty
3
SELECT 1 FROM "P1"."TEST" WHERE  ROWNUM <= 1;
org.gvsig.oracle/tags/org.gvsig.oracle-2.0.153/org.gvsig.oracle.provider/src/test/resources/org/gvsig/oracle/dal/operations/sql/performChanges.sql
1

  
2
-- Insert SQL
3
INSERT INTO "P1"."TEST" ( 
4
    "ID", "Byte", "Bool1", "Long", "Timestamp", "Date", "Time", 
5
    "Bool2", "String", "Bool3", "Double", "Bool4", "Float", "Bool5", 
6
    "Decimal", "Geometry" 
7
) VALUES ( 
8
    ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, NVL2((?),SDO_GEOMETRY((?), (?)),NULL) 
9
);
10

  
11
-- Delete SQL
12
DELETE FROM "P1"."TEST" WHERE ( ("ID") = (?) );
13

  
14
-- Update SQL
15
UPDATE "P1"."TEST" 
16
    SET 
17
        "Byte" = ?, 
18
        "Bool1" = ?, 
19
        "Long" = ?, 
20
        "Timestamp" = ?, 
21
        "Date" = ?, 
22
        "Time" = ?, 
23
        "Bool2" = ?, 
24
        "String" = ?, 
25
        "Bool3" = ?, 
26
        "Double" = ?, 
27
        "Bool4" = ?, 
28
        "Float" = ?, 
29
        "Bool5" = ?, 
30
        "Decimal" = ?, 
31
        "Geometry" = NVL2((?),SDO_GEOMETRY((?), (?)),NULL) 
32
    WHERE 
33
        ( ("ID") = (?) );
34

  
35

  
36
-- Update Table SQL
37
ALTER TABLE "P1"."TEST" ADD "Byte" NUMBER(3,0) DEFAULT NULL NULL;
38
ALTER TABLE "P1"."TEST" ADD "Bool1" CHAR(1) DEFAULT NULL NULL;
39
ALTER TABLE "P1"."TEST" ADD "Long" NUMBER(18,0) DEFAULT NULL NULL;
40
ALTER TABLE "P1"."TEST" ADD "Timestamp" TIMESTAMP DEFAULT NULL NULL;
41
ALTER TABLE "P1"."TEST" ADD "Date" DATE DEFAULT NULL NULL;
42
ALTER TABLE "P1"."TEST" ADD "Time" TIMESTAMP DEFAULT NULL NULL;
43
ALTER TABLE "P1"."TEST" ADD "Bool2" CHAR(1) DEFAULT NULL NULL;
44
ALTER TABLE "P1"."TEST" ADD "String" NVARCHAR2(30) DEFAULT NULL NULL;
45
ALTER TABLE "P1"."TEST" ADD "Bool3" CHAR(1) DEFAULT NULL NULL;
46
ALTER TABLE "P1"."TEST" ADD "Double" BINARY_DOUBLE DEFAULT NULL NULL;
47
ALTER TABLE "P1"."TEST" ADD "Bool4" CHAR(1) DEFAULT NULL NULL;
48
ALTER TABLE "P1"."TEST" ADD "Float" BINARY_FLOAT DEFAULT NULL NULL;
49
ALTER TABLE "P1"."TEST" ADD "Bool5" CHAR(1) DEFAULT NULL NULL;
50
ALTER TABLE "P1"."TEST" ADD "Decimal" NUMBER(6,3) DEFAULT NULL NULL;
51
ALTER TABLE "P1"."TEST" ADD "Geometry" SDO_GEOMETRY DEFAULT NULL NULL;
52

  
53

  
54
DELETE FROM MDSYS.OGIS_GEOMETRY_COLUMNS 
55
    WHERE F_TABLE_SCHEMA = 'P1' 
56
    AND F_TABLE_NAME = 'test' 
57
    AND F_GEOMETRY_COLUMN = 'Geometry';
58

  
59

  
60
INSERT INTO MDSYS.OGIS_GEOMETRY_COLUMNS (
61
    F_TABLE_SCHEMA, F_TABLE_NAME, F_GEOMETRY_COLUMN, GEOMETRY_TYPE) 
62
    VALUES ('P1', 'test', 'Geometry', 1001);
org.gvsig.oracle/tags/org.gvsig.oracle-2.0.153/org.gvsig.oracle.provider/src/test/resources/org/gvsig/oracle/dal/operations/sql/updateTableStatistics.sql
1

  
2
-- UpdateTableStatistics SQL
3
ANALYZE TABLE "P1"."TEST" COMPUTE STATISTICS;
org.gvsig.oracle/tags/org.gvsig.oracle-2.0.153/org.gvsig.oracle.provider/src/test/resources/org/gvsig/oracle/dal/operations/sql/append.sql
1
INSERT INTO "P1"."TEST" ( 
2
    "ID", "Byte", "Bool1", "Long", "Timestamp", "Date", "Time", 
3
    "Bool2", "String", "Bool3", "Double", "Bool4", "Float", "Bool5", 
4
    "Decimal", "Geometry" 
5
) VALUES ( 
6
    ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, NVL2((?),SDO_GEOMETRY((?), (?)),NULL) );
org.gvsig.oracle/tags/org.gvsig.oracle-2.0.153/org.gvsig.oracle.provider/src/test/resources/org/gvsig/oracle/dal/operations/sql/fetchFeatureType.sql
1

  
2
-- FetchFeatureType first row SQL
3
SELECT * FROM "P1"."TEST" WHERE  ROWNUM <= 0;
4

  
5
SELECT "USER_TAB_COLS"."COLUMN_NAME", "ALL_CONSTRAINTS"."CONSTRAINT_TYPE" 
6
FROM USER_TAB_COLS 
7
JOIN ALL_CONS_COLUMNS on (ALL_CONS_COLUMNS.TABLE_NAME = USER_TAB_COLS.TABLE_NAME and ALL_CONS_COLUMNS.COLUMN_NAME = USER_TAB_COLS.COLUMN_NAME) 
8
LEFT JOIN ALL_CONSTRAINTS on ALL_CONSTRAINTS.CONSTRAINT_NAME = ALL_CONS_COLUMNS.CONSTRAINT_NAME 
9
WHERE ( 
10
    (( ("USER_TAB_COLS"."TABLE_NAME") LIKE ('TEST') )) 
11
    AND 
12
    (( ("ALL_CONSTRAINTS"."CONSTRAINT_TYPE") = ('P') )) 
13
);
org.gvsig.oracle/tags/org.gvsig.oracle-2.0.153/org.gvsig.oracle.provider/src/test/resources/org/gvsig/oracle/dal/operations/sql/count.sql
1

  
2
-- normalize-spaces true
3
-- strip-start true
4
-- remove-nl true
5
-- replace-nl-by-space true
6
-- trim-end true
7

  
8

  
9
-- rem Ojo!, deberia ser "dbtest"."test" y no solo "test" ???
10

  
11

  
12
-- begin count
13
SELECT COUNT(*) FROM "P1"."TEST"
14
-- end count
15

  
16
-- begin testAggregatesAndGroup
17
-- rem Count with aggregates and group SQL
18
SELECT COUNT(*) 
19
FROM ( 
20
    SELECT MAX("P1"."TEST"."Byte") "Byte", 
21
        MIN("P1"."TEST"."ID") "ID", 
22
        SUM("P1"."TEST"."Double") "Double" 
23
    FROM "P1"."TEST" 
24
    GROUP BY "P1"."TEST"."Long") "_subquery_alias_" 
25
-- end testAggregatesAndGroup
26

  
27
-- begin testGroup
28
-- rem Count with group SQL
29
SELECT COUNT(*) 
30
FROM ( SELECT "P1"."TEST"."Long" 
31
      FROM "P1"."TEST" 
32
      GROUP BY "P1"."TEST"."Long") "_subquery_alias_" 
33
-- end testGroup
34

  
35
-- begin testAggregates
36
-- rem Count with aggregates
37
SELECT COUNT(*) 
38
FROM ( SELECT MAX("P1"."TEST"."Byte") "Byte", 
39
             MIN("P1"."TEST"."ID") "ID", 
40
             SUM("P1"."TEST"."Double") "Double" 
41
      FROM "P1"."TEST") "_subquery_alias_" 
42
-- end testAggregates
43

  
org.gvsig.oracle/tags/org.gvsig.oracle-2.0.153/org.gvsig.oracle.provider/src/test/resources/org/gvsig/oracle/dal/operations/sql/resultSetForSetProvider.sql
1

  
2
-- ResultSetForSetProvider SQL
3

  
4
-- Simple
5
SELECT 
6
    "P1"."TEST"."ID", "P1"."TEST"."Byte", "P1"."TEST"."Bool1", "P1"."TEST"."Long", 
7
    "P1"."TEST"."Timestamp", "P1"."TEST"."Date", "P1"."TEST"."Time", 
8
    "P1"."TEST"."Bool2", "P1"."TEST"."String", "P1"."TEST"."Bool3", 
9
    "P1"."TEST"."Double", "P1"."TEST"."Bool4", "P1"."TEST"."Float", "P1"."TEST"."Bool5", "P1"."TEST"."Decimal", 
10
    NVL2(("P1"."TEST"."Geometry"),("P1"."TEST"."Geometry").Get_WKB(),NULL) 
11
FROM "P1"."TEST" ORDER BY "P1"."TEST"."ID" ASC;
12

  
13
-- Simple Group by
14
SELECT MIN("P1"."TEST"."ID") "ID", MAX("P1"."TEST"."Byte") "Byte", NULL "Bool1", "P1"."TEST"."Long", 
15
    NULL "Timestamp", NULL "Date", NULL "Time", NULL "Bool2", 
16
    NULL "String", NULL "Bool3", SUM("P1"."TEST"."Double") "Double", 
17
    NULL "Bool4", NULL "Float", NULL "Bool5", NULL "Decimal", 
18
    NULL "Geometry" 
19
FROM "P1"."TEST" 
20
GROUP BY "P1"."TEST"."Long" 
21
ORDER BY "P1"."TEST"."Long" ASC NULLS LAST;
22

  
23
-- Subselect
24
SELECT "P1"."TEST"."ID", 
25
       "P1"."TEST"."Byte", 
26
       "P1"."TEST"."Bool1", 
27
       "P1"."TEST"."Long", 
28
       "P1"."TEST"."Timestamp", 
29
       "P1"."TEST"."Date", 
30
       "P1"."TEST"."Time", 
31
       "P1"."TEST"."Bool2", 
32
       "P1"."TEST"."String", 
33
       "P1"."TEST"."Bool3", 
34
       "P1"."TEST"."Double", 
35
       "P1"."TEST"."Bool4", 
36
       "P1"."TEST"."Float", 
37
       "P1"."TEST"."Bool5", 
38
       "P1"."TEST"."Decimal", 
39
       NVL2(("P1"."TEST"."Geometry"),("P1"."TEST"."Geometry").Get_WKB(),NULL), 
40
       CASE 
41
         WHEN (EXISTS(( SELECT "P1"."COUNTRIES"."ISO_A2" 
42
                       FROM "P1"."COUNTRIES" 
43
                       WHERE ( (( ("P1"."TEST"."String") = ("countries"."CONTINENT") )) AND (( ("countries"."LASTCENSUS") < (0) )) ) AND  ROWNUM <= 1 ))) THEN (1) 
44
         ELSE (0) 
45
       END "EXISTS62a964cd7bc24f409b97c03b9170408d" 
46
FROM "P1"."TEST" 
47
WHERE EXISTS(( SELECT "P1"."COUNTRIES"."ISO_A2" 
48
                       FROM "P1"."COUNTRIES" 
49
                       WHERE ( (( ("P1"."TEST"."String") = ("countries"."CONTINENT") )) AND (( ("countries"."LASTCENSUS") < (0) )) ) AND  ROWNUM <= 1 )) 
50
ORDER BY "P1"."TEST"."ID" ASC;
51

  
52
-- Group and Subselect
53
SELECT MIN("P1"."TEST"."ID") "ID", MAX("P1"."TEST"."Byte") "Byte", NULL "Bool1", "P1"."TEST"."Long", NULL "Timestamp", NULL "Date", NULL "Time", NULL "Bool2", NULL "String", NULL "Bool3", SUM("P1"."TEST"."Double") "Double", NULL "Bool4", NULL "Float", NULL "Bool5", NULL "Decimal", NULL "Geometry" FROM "P1"."TEST" WHERE EXISTS(( SELECT "P1"."COUNTRIES"."ISO_A2" FROM "P1"."COUNTRIES" WHERE ( (( ("P1"."TEST"."String") = ("countries"."CONTINENT") )) AND (( ("countries"."LASTCENSUS") < (0) )) ) AND  ROWNUM <= 1 )) GROUP BY "P1"."TEST"."Long" ORDER BY "P1"."TEST"."Long" ASC NULLS LAST;
54

  
55
-- Constant Column Primary Key
56
SELECT 
57
    "P1"."TEST"."ID", 
58
    "P1"."TEST"."Byte", "P1"."TEST"."Bool1", "P1"."TEST"."Long", 
59
    "P1"."TEST"."Timestamp", "P1"."TEST"."Date", "P1"."TEST"."Time", 
60
    "P1"."TEST"."Bool2", "P1"."TEST"."String", "P1"."TEST"."Bool3", 
61
    "P1"."TEST"."Double", "P1"."TEST"."Bool4", "P1"."TEST"."Float", "P1"."TEST"."Bool5", "P1"."TEST"."Decimal", 
62
    NVL2(("P1"."TEST"."Geometry"),("P1"."TEST"."Geometry").Get_WKB(),NULL) 
63
FROM "P1"."TEST" ORDER BY "P1"."TEST"."ID" ASC;
64

  
65
-- CLOB
66
SELECT 
67
    "P1"."TEST"."ID", "P1"."TEST"."Byte", "P1"."TEST"."Bool1", "P1"."TEST"."Long", 
68
    "P1"."TEST"."Timestamp", "P1"."TEST"."Date", "P1"."TEST"."Time", 
69
    "P1"."TEST"."Bool2", "P1"."TEST"."String", "P1"."TEST"."Bool3", 
70
    "P1"."TEST"."Double", "P1"."TEST"."Bool4", "P1"."TEST"."Float", "P1"."TEST"."Bool5", "P1"."TEST"."Decimal", 
71
    NVL2(("P1"."TEST"."Geometry"),("P1"."TEST"."Geometry").Get_WKB(),NULL) 
72
FROM "P1"."TEST" 
73
WHERE dbms_lob.compare(("P1"."TEST"."String"),('hola')) = 0 ORDER BY "P1"."TEST"."ID" ASC;
org.gvsig.oracle/tags/org.gvsig.oracle-2.0.153/org.gvsig.oracle.provider/src/test/resources/org/gvsig/oracle/dal/testCreateSource1_es.csv
1
ID__Integer__set__size=0__set__precision=10__set__scale=0__set__hidden=false__set__readOnly=false__set__allowNull=true__set__pk=true__set__automatic=false__set__isTime=false__set__locale=es__set__order=0__set__roundMode=4;Byte__Byte__set__size=0__set__precision=3__set__scale=0__set__hidden=false__set__readOnly=false__set__allowNull=true__set__pk=false__set__automatic=false__set__isTime=false__set__locale=es__set__order=10__set__roundMode=4;Bool1__Boolean__set__size=0__set__precision=-1__set__scale=-1__set__hidden=false__set__readOnly=false__set__allowNull=true__set__pk=false__set__automatic=false__set__isTime=false__set__locale=es__set__order=20__set__roundMode=4;Long__Long__set__size=0__set__precision=19__set__scale=0__set__hidden=false__set__readOnly=false__set__allowNull=true__set__pk=false__set__automatic=false__set__isTime=false__set__locale=es__set__order=30__set__roundMode=4;Timestamp__Timestamp__set__size=0__set__precision=-1__set__scale=-1__set__hidden=false__set__readOnly=false__set__allowNull=true__set__pk=false__set__automatic=false__set__isTime=false__set__locale=es__set__order=40__set__roundMode=4;Date__Date__set__size=0__set__precision=-1__set__scale=-1__set__hidden=false__set__readOnly=false__set__allowNull=true__set__pk=false__set__automatic=false__set__isTime=false__set__locale=es__set__order=50__set__roundMode=4;Time__Time__set__size=0__set__precision=-1__set__scale=-1__set__hidden=false__set__readOnly=false__set__allowNull=true__set__pk=false__set__automatic=false__set__isTime=false__set__locale=es__set__order=60__set__roundMode=4;Bool2__Boolean__set__size=0__set__precision=-1__set__scale=-1__set__hidden=false__set__readOnly=false__set__allowNull=true__set__pk=false__set__automatic=false__set__isTime=false__set__locale=es__set__order=70__set__roundMode=4;String__String__set__size=30__set__precision=-1__set__scale=-1__set__hidden=false__set__readOnly=false__set__allowNull=true__set__pk=false__set__automatic=false__set__isTime=false__set__locale=es__set__order=80__set__roundMode=4;Bool3__Boolean__set__size=0__set__precision=-1__set__scale=-1__set__hidden=false__set__readOnly=false__set__allowNull=true__set__pk=false__set__automatic=false__set__isTime=false__set__locale=es__set__order=90__set__roundMode=4;Double__Double__set__size=0__set__precision=16__set__scale=-1__set__hidden=false__set__readOnly=false__set__allowNull=true__set__pk=false__set__automatic=false__set__isTime=false__set__locale=es__set__order=100__set__roundMode=4;Bool4__Boolean__set__size=0__set__precision=-1__set__scale=-1__set__hidden=false__set__readOnly=false__set__allowNull=true__set__pk=false__set__automatic=false__set__isTime=false__set__locale=es__set__order=110__set__roundMode=4;Float__Float__set__size=0__set__precision=8__set__scale=-1__set__hidden=false__set__readOnly=false__set__allowNull=true__set__pk=false__set__automatic=false__set__isTime=false__set__locale=es__set__order=120__set__roundMode=4;Bool5__Boolean__set__size=0__set__precision=-1__set__scale=-1__set__hidden=false__set__readOnly=false__set__allowNull=true__set__pk=false__set__automatic=false__set__isTime=false__set__locale=es__set__order=130__set__roundMode=4;Decimal__Decimal__set__size=0__set__precision=6__set__scale=3__set__hidden=false__set__readOnly=false__set__allowNull=true__set__pk=false__set__automatic=false__set__isTime=false__set__locale=es__set__order=140__set__roundMode=4;Geometry__Geometry__set__size=0__set__precision=-1__set__scale=-1__set__hidden=false__set__readOnly=false__set__allowNull=true__set__pk=false__set__automatic=false__set__isTime=false__set__locale=es__set__order=150__set__roundMode=4__set__srs=EPSG:25830__set__geomtype=Point@2D
2
0;;;;;;;;      ;;;;;true;;
3
1;10;true;1000;29-dic-2019 12:13:14;29 de diciembre de 2019;12:13:14 CET;true;Yo yo1;false;1234554321;true;12321;true;456,123;POINT (-3.8945156972987958 42.01053743584765)
4
2;20;true;2000;29-nov-2019 12:13:14;29 de noviembre de 2019;13:13:14 CET;true;Yo yo2;false;1210054321;true;10021;true;456,123;POINT (-2.1079618220646115 41.983079082675474)
5
3;30;true;3000;29-oct-2019 12:13:14;29 de octubre de 2019;14:13:14 CET;true;Yo yo3;false;1210154321;true;10121;true;456,123;POINT (-2.57249737803327 41.35372113353277)
6
4;40;true;4000;29-sep-2019 12:13:14;29 de septiembre de 2019;15:13:14 CET;true;Yo yo4;false;1210254321;true;10221;true;456,123;POINT (-4.061822048036304 41.35877680235475)
7
5;50;true;5000;29-ago-2019 12:13:14;29 de agosto de 2019;16:13:14 CET;true;Yo yo5;false;1210354321;true;10321;true;456,123;POINT (-3.974317066986988 40.78701209315094)
8
6;60;true;6000;29-jul-2019 12:13:14;29 de julio de 2019;17:13:14 CET;true;Yo yo6;false;1210454321;true;10421;true;456,123;POINT (-2.510509736717547 40.69847453392384)
9
7;70;true;7000;29-jun-2019 12:13:14;29 de junio de 2019;18:13:14 CET;true;Yo yo7;false;1210554321;true;10521;true;456,123;POINT (-0.5317736981843011 40.66396082637622)
10
8;80;true;8000;29-may-2019 12:13:14;29 de mayo de 2019;19:13:14 CET;true;Yo yo8;false;1210654321;true;10621;true;456,123;POINT (-0.3626917259170671 41.13652386601604)
11
9;90;true;9000;29-abr-2019 12:13:14;29 de abril de 2019;20:13:14 CET;true;Yo yo9;false;1210754321;true;10721;true;456,123;POINT (-1.2461823078608523 41.84950010180092)
12
10;;true;1001;29-dic-2019 12:13:14;29 de diciembre de 2019;12:13:14 CET;true;Yo yo1;false;1234554321;true;12321;true;456,123;POINT (-1.2145405488596532 41.22158511004416)
13
11;22;;2003;29-nov-2019 12:13:14;29 de noviembre de 2019;13:13:14 CET;true;Yo yo 2;false;1210054321;true;10021;true;456,123;POINT (-0.7699089544899235 41.630581204431756)
14
12;33;true;;29-sep-2019 12:13:14;29 de octubre de 2019;14:13:14 CET;true;Yo yo3;false;1210154321;true;10121;true;456,123;POINT (0.4821915816701051 41.75970939133133)
15
13;41;true;4001;;29 de septiembre de 2019;15:13:14 CET;true;Yo yo4;false;1210254321;true;10221;true;456,123;POINT (0.7912661147227479 41.919324620992036)
16
14;52;true;5002;29-ago-2019 12:13:14;;16:13:14 CET;true;Yo yo5;false;1210354321;true;10321;true;456,123;POINT (1.052534629531243 41.493736996249545)
17
15;63;true;6003;29-jul-2019 12:13:14;29 de julio de 2019;;true;Yo yo6;false;1210454321;true;10421;true;456,123;POINT (0.8097002367335026 41.0899480235613)
18
16;74;true;7004;29-jun-2019 12:13:14;29 de junio de 2019;18:13:14 CET;true; ;false;1210554321;true;10521;true;456,123;POINT (-0.4883960310112362 41.17597288081971)
19
17;85;true;8005;29-may-2019 12:13:14;29 de mayo de 2019;19:13:14 CET;true;Yo yo8;false;;true;10621;true;456,123;POINT (-0.6439030698437881 40.89530766155764)
20
18;96;true;9006;29-abr-2019 12:13:14;29 de abril de 2019;20:13:14 CET;true;Yo yo9;false;1210754321;true;;true;;POINT (-1.3061826868199504 40.72372835570524)
org.gvsig.oracle/tags/org.gvsig.oracle-2.0.153/org.gvsig.oracle.provider/src/test/resources/org/gvsig/oracle/dal/testCreateSource_short.csv
1
Byte/Byte
2
  
3
10
4
20
5
30
6
40
7
50
8
60
9
70
10
80
11
90
12

  
13
22
14
33
15
41
16
52
17
63
18
74
19
85
20
96
org.gvsig.oracle/tags/org.gvsig.oracle-2.0.153/org.gvsig.oracle.provider/src/test/resources/org/gvsig/oracle/dal/testCreateSource1.csv
1
ID/Integer/set/pk=true;Byte/Byte;Bool1/Boolean;Long/Long;Timestamp/TimeStamp;Date/Date;Time/Time;Bool2/Boolean;String/String/set/size=30;Bool3/Boolean;Double/Double;Bool4/Boolean;Float/Float;Bool5/Boolean;Decimal/Decimal/set/precision=6/set/scale=3;Geometry/Geometry/set/geomtype=Point:2D/set/srs=EPSG:4326
2
0;  ; ;    ;              ;        ;      ; ;      ; ;           ; ;      ;T;       ;
3
1;10;T;1000;20191229121314;20191229;121314;T;Yo yo1;F;12345.54321;T;123.21;T;456.123;POINT (-3.8945156972987958 42.01053743584765)
4
2;20;T;2000;20191129121314;20191129;131314;T;Yo yo2;F;12100.54321;T;100.21;T;456.123;POINT (-2.1079618220646115 41.983079082675474)
5
3;30;T;3000;20191029121314;20191029;141314;T;Yo yo3;F;12101.54321;T;101.21;T;456.123;POINT (-2.57249737803327 41.35372113353277)
6
4;40;T;4000;20190929121314;20190929;151314;T;Yo yo4;F;12102.54321;T;102.21;T;456.123;POINT (-4.061822048036304 41.35877680235475)
7
5;50;T;5000;20190829121314;20190829;161314;T;Yo yo5;F;12103.54321;T;103.21;T;456.123;POINT (-3.974317066986988 40.78701209315094)
8
6;60;T;6000;20190729121314;20190729;171314;T;Yo yo6;F;12104.54321;T;104.21;T;456.123;POINT (-2.510509736717547 40.69847453392384)
9
7;70;T;7000;20190629121314;20190629;181314;T;Yo yo7;F;12105.54321;T;105.21;T;456.123;POINT (-0.5317736981843011 40.66396082637622)
10
8;80;T;8000;20190529121314;20190529;191314;T;Yo yo8;F;12106.54321;T;106.21;T;456.123;POINT (-0.3626917259170671 41.13652386601604)
11
9;90;T;9000;20190429121314;20190429;201314;T;Yo yo9;F;12107.54321;T;107.21;T;456.123;POINT (-1.2461823078608523 41.84950010180092)
12
10;;T;1001;20191229121314;20191229;121314;T;Yo yo1;F;12345.54321;T;123.21;T;456.123;POINT (-1.2145405488596532 41.22158511004416)
13
11;22; ;2002;20191129121314;20191129;131314;T;Yo yo2;F;12100.54321;T;100.21;T;456.123;POINT (-0.7699089544899235 41.630581204431756)
14
12;33;T; ;20190929121314;20191029;141314;T;Yo yo3;F;12101.54321;T;101.21;T;456.123;POINT (0.4821915816701051 41.75970939133133)
15
13;41;T;4001; ;20190929;151314;T;Yo yo4;F;12102.54321;T;102.21;T;456.123;POINT (0.7912661147227479 41.919324620992036)
16
14;52;T;5002;20190829121314; ;161314;T;Yo yo5;F;12103.54321;T;103.21;T;456.123;POINT (1.052534629531243 41.493736996249545)
17
15;63;T;6003;20190729121314;20190729; ;T;Yo yo6;F;12104.54321;T;104.21;T;456.123;POINT (0.8097002367335026 41.0899480235613)
18
16;74;T;7004;20190629121314;20190629;181314;T; ;F;12105.54321;T;105.21;T;456.123;POINT (-0.4883960310112362 41.17597288081971)
19
17;85;T;8005;20190529121314;20190529;191314;T;Yo yo8;F; ;T;106.21;T;456.123;POINT (-0.6439030698437881 40.89530766155764)
20
18;96;T;9006;20190429121314;20190429;201314;T;Yo yo9;F;12107.54321;T; ;T; ;POINT (-1.3061826868199504 40.72372835570524)
org.gvsig.oracle/tags/org.gvsig.oracle-2.0.153/org.gvsig.oracle.provider/src/test/resources/log4j.properties
1
log4j.rootLogger=INFO, stdout
2

  
3
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
4
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
5

  
6
# Pattern to output the caller's file name and line number.
7
log4j.appender.stdout.layout.ConversionPattern=%5p %r [%t] (%F:%L) - %m%n
8

  
9
log4j.logger.org.gvsig.andami.plugins=INFO
10
log4j.logger.org.gvsig.tools=INFO
11
log4j.logger.org.gvsig.tools.dataTypes=INFO
12
log4j.logger.org.gvsig.tools.library=INFO
13
log4j.logger.org.gvsig.tools.persistence=INFO
14
log4j.logger.org.gvsig.i18n.Messages=INFO
15
log4j.logger.org.gvsig.installer.lib.impl.DefaultDependenciesCalculator=INFO
16
#
17
# JCRS
18
log4j.logger.org.gvsig.crs=INFO
19
log4j.logger.es.idr.teledeteccion.connection=INFO
20
log4j.logger.org.geotools.referencing.operation.projection=INFO
21
#
22
# JDBC/BBDD
23
# Core
24
log4j.logger.org.gvsig.fmap.dal.store.jdbc=INFO
25
log4j.logger.org.gvsig.fmap.dal.store.jdbc2=INFO
26
log4j.logger.org.gvsig.fmap.dal.feature.spi=INFO
27
# Data providers
28
log4j.logger.org.gvsig.fmap.dal.store.h2=INFO
29
log4j.logger.org.gvsig.postgresql.dal=INFO
30
log4j.logger.org.gvsig.mssqlserver.dal=INFO
31
log4j.logger.org.gvsig.mysql.dal=INFO
32
log4j.logger.org.gvsig.spatialite.dal=INFO
33
log4j.logger.org.gvsig.oracle.dal=INFO
34
# Exoport providers
35
log4j.logger.org.gvsig.exportto.swing.prov.jdbc=INFO
36
log4j.logger.org.gvsig.exportto.swing.prov.h2=INFO
37
#
38
# shp/dbf driver
39
log4j.logger.org.gvsig.fmap.dal.store.shp=INFO
40
log4j.logger.org.gvsig.fmap.dal.store.dbf=INFO
41
#
org.gvsig.oracle/tags/org.gvsig.oracle-2.0.153/org.gvsig.oracle.provider/src/test/java/org/gvsig/oracle/dal/TestUtilsOracle.java
1
package org.gvsig.oracle.dal;
2

  
3
import org.gvsig.fmap.dal.DALLocator;
4
import org.gvsig.fmap.dal.DataManager;
5
import org.gvsig.fmap.dal.feature.FeatureStore;
6
import org.gvsig.fmap.dal.store.jdbc.JDBCServerExplorerParameters;
7
import org.gvsig.fmap.dal.store.jdbc2.AbstractTestUtils;
8
import org.gvsig.fmap.dal.store.jdbc2.JDBCHelper;
9
import org.gvsig.fmap.dal.store.jdbc2.spi.FakeConnectionProvider;
10

  
11
/**
12
 *
13
 * @author jjdelcerro
14
 */
15
public class TestUtilsOracle extends AbstractTestUtils {
16

  
17
    @Override
18
    public String getProviderName() {
19
        return OracleLibrary.NAME;
20
    }
21

  
22
    @Override
23
    public String getExpectedsPath() {
24
        return "/org/gvsig/oracle/dal/operations/sql";
25
    }
26
    
27
    @Override
28
    public JDBCHelper createJDBCHelper() throws Exception {
29
      OracleConnectionParameters params = (OracleConnectionParameters) this.getServerExplorerParameters("fake");
30
      OracleHelper helper = new OracleHelper(params, new FakeConnectionProvider());
31
      return helper;
32
    }
33

  
34
    @Override
35
    public JDBCServerExplorerParameters getServerExplorerParameters(String dbname) throws Exception {
36
        return this.getOracleServerExplorerParameters(dbname);
37
    }
38

  
39
    public JDBCServerExplorerParameters getOracleServerExplorerParameters(String dbname) throws Exception {
40
        OracleExplorerParameters conn = TestUtils.buildDBConnection();
41
        return conn;
42
    }
43

  
44
    @Override
45
    public void runSQLToCheckSyntax(String testName, FeatureStore datacsv, String testTableName, String sql) throws Exception {
46
        // Do nothing
47
    }
48

  
49
}
org.gvsig.oracle/tags/org.gvsig.oracle-2.0.153/org.gvsig.oracle.provider/src/test/java/org/gvsig/oracle/dal/OracleSQLBuilderTest.java
1
package org.gvsig.oracle.dal;
2

  
3

  
4
import junit.framework.TestCase;
5
import org.apache.commons.lang3.ArrayUtils;
6
import org.cresques.cts.IProjection;
7
import org.gvsig.expressionevaluator.ExpressionBuilder;
8
import org.gvsig.expressionevaluator.GeometryExpressionBuilder;
9
import org.gvsig.expressionevaluator.GeometryExpressionBuilderHelper;
10
import org.gvsig.fmap.crs.CRSFactory;
11
import org.gvsig.fmap.dal.SQLBuilder;
12
import org.gvsig.fmap.dal.SQLBuilder.Privilege;
13
import org.gvsig.fmap.dal.feature.spi.SQLBuilderBase;
14
import org.gvsig.fmap.dal.store.jdbc2.OperationsFactory.TableReference;
15
import org.gvsig.fmap.dal.store.jdbc2.spi.operations.OperationsFactoryBase;
16
import org.gvsig.fmap.geom.DataTypes;
17
import org.gvsig.fmap.geom.Geometry;
18
import org.gvsig.fmap.geom.GeometryLocator;
19
import org.gvsig.fmap.geom.GeometryManager;
20
import org.gvsig.fmap.geom.primitive.Polygon;
21
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
22

  
23
public class OracleSQLBuilderTest extends TestCase {
24
    
25
    public OracleSQLBuilderTest(String testName) {
26
        super(testName);
27
    }
28

  
29
    @Override
30
    protected void setUp() throws Exception {
31
        super.setUp();
32
        new DefaultLibrariesInitializer().fullInitialize();
33
    }
34

  
35
    @Override
36
    protected void tearDown() throws Exception {
37
        super.tearDown();
38
    }
39

  
40
    private SQLBuilder createSQLBuilder() {
41
        return new OracleSQLBuilder(TestUtils.getJDBCHelper());
42
    }
43
    
44
    public void testCalculateEnvelopeOfColumn() throws Exception {
45
        
46
        TableReference table = new OperationsFactoryBase.DefaultTableReference("master","dbo","test1", null);
47
        String columnName = "geom";
48
        
49
        SQLBuilder sqlbuilder = createSQLBuilder();
50
        GeometryExpressionBuilder expbuilder = sqlbuilder.expression();
51
        
52
        sqlbuilder.select().column().value(
53
            expbuilder.as_geometry(
54
                expbuilder.ST_ExtentAggregate(
55
                        expbuilder.column(columnName)
56
                )
57
            )
58
        );
59
        //sqlbuilder.select().group_by(expbuilder.column(columnName));
60
        sqlbuilder.select().from().table()
61
                .database(table.getDatabase())
62
                .schema(table.getSchema())
63
                .name(table.getTable());
64
        sqlbuilder.select().from().subquery(table.getSubquery());
65

  
66
        sqlbuilder.select().where().set(        
67
            expbuilder.not_is_null(expbuilder.column(columnName))
68
        );
69
        
70
        System.out.println("# Test:: testCalculateEnvelopeOfColumn");
71
        System.out.println("# SQL:: " + sqlbuilder.toString());
72
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
73
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
74
        assertEquals(
75
                "SELECT NVL2((SDO_AGGR_MBR(\"geom\")),(SDO_AGGR_MBR(\"geom\")).Get_WKB(),NULL) FROM \"dbo\".\"TEST1\" WHERE ( (\"geom\") IS NOT NULL )", 
76
                sqlbuilder.toString()
77
        );
78
        assertEquals(
79
                "[geom]",
80
                ArrayUtils.toString(sqlbuilder.variables_names())
81
        );
82
        assertEquals(
83
                "[]",
84
                ArrayUtils.toString(sqlbuilder.parameters_names())
85
        );
86
    }
87
 
88
    public void testCalculateEnvelope() throws Exception {
89
        GeometryManager geometryManager = GeometryLocator.getGeometryManager();
90
        IProjection proj = CRSFactory.getCRS("EPSG:4326");
91
        
92
        Polygon limit = geometryManager.createPolygon(Geometry.SUBTYPES.GEOM2D);
93
        limit.addVertex(0, 0);
94
        limit.addVertex(0, 100);
95
        limit.addVertex(100, 100);
96
        limit.addVertex(100, 0);
97
        limit.addVertex(0, 0);
98
        limit.setProjection(proj);
99
        
100
        SQLBuilder sqlbuilder = createSQLBuilder();
101
        GeometryExpressionBuilder expbuilder = sqlbuilder.expression();
102
        
103
        sqlbuilder.select().column().value(
104
            expbuilder.as_geometry(
105
              expbuilder.ST_ExtentAggregate(
106
                expbuilder.column("the_geom")
107
              )
108
            )
109
        ).as("envelope");
110
        sqlbuilder.select().from().table().database("master").schema("dbo").name("test1");
111
        sqlbuilder.select().where().set(
112
            expbuilder.ST_Intersects(
113
                expbuilder.ST_Envelope(
114
                    expbuilder.column("the_geom")
115
                ),
116
                expbuilder.geometry(limit, proj)
117
            )
118
        );
119
        sqlbuilder.select().where().and(
120
                expbuilder.custom("x = 27")
121
        );
122
        
123
        System.out.println("# Test:: testCalculateEnvelope");
124
        System.out.println("# SQL:: " + sqlbuilder.toString());
125
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
126
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
127
        assertEquals(
128
                "SELECT NVL2((SDO_AGGR_MBR(\"the_geom\")),(SDO_AGGR_MBR(\"the_geom\")).Get_WKB(),NULL) \"envelope\" FROM \"dbo\".\"TEST1\" WHERE ( ((SDO_RELATE(SDO_GEOM.SDO_MBR(\"the_geom\"), SDO_GEOMETRY((TO_BLOB(HEXTORAW('000000000300000001000000050000000000000000000000000000000000000000000000004059000000000000405900000000000040590000000000004059000000000000000000000000000000000000000000000000000000000000'))), (4326)), 'mask=ANYINTERACT') = 'TRUE')) AND (x = 27) )",
129
                sqlbuilder.toString()
130
        );
131
        assertEquals(
132
                "[the_geom]",
133
                ArrayUtils.toString(sqlbuilder.variables_names())
134
        );
135
        assertEquals(
136
                "[]",
137
                ArrayUtils.toString(sqlbuilder.parameters_names())
138
        );
139
    }
140

  
141
    public void testCount() throws Exception {
142
        SQLBuilder sqlbuilder = createSQLBuilder();
143
        ExpressionBuilder expbuilder = sqlbuilder.expression();
144
        
145
        sqlbuilder.select().column().value(sqlbuilder.count().all());
146
        sqlbuilder.select().from().table().database("master").schema("dbo").name("test1");
147
        sqlbuilder.select().from().subquery(null);
148
        sqlbuilder.select().where().set( expbuilder.custom("pp = 200"));
149

  
150
        System.out.println("# Test:: testCount");
151
        System.out.println("# SQL:: " + sqlbuilder.toString());
152
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
153
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
154

  
155
        //# Test:: testCount
156
        //# SQL:: SELECT COUNT(*) FROM "test1" WHERE pp = 200
157
        //# Variables:: []
158
        //# Parametros:: []
159

  
160
        assertEquals(
161
                "SELECT COUNT(*) FROM \"dbo\".\"TEST1\" WHERE pp = 200",
162
                sqlbuilder.toString()
163
        );
164
        assertEquals(
165
                "[]",
166
                ArrayUtils.toString(sqlbuilder.variables_names())
167
        );
168
        assertEquals(
169
                "[]",
170
                ArrayUtils.toString(sqlbuilder.parameters_names())
171
        );
172
    }
173
    
174
    public void testCreateTable() throws Exception {
175
        SQLBuilder sqlbuilder = createSQLBuilder();
176
        ExpressionBuilder expbuilder = sqlbuilder.expression();
177

  
178
        sqlbuilder.create_table().table().database("master").schema("dbo").name("test1");
179
        sqlbuilder.create_table().add_column(
180
                "name",
181
                DataTypes.STRING,
182
                45,
183
                0,
184
                0,
185
                false,
186
                false,
187
                true,
188
                false,
189
                null
190
        );
191
        sqlbuilder.create_table().add_column(
192
                "id",
193
                DataTypes.INT,
194
                0,
195
                0,
196
                0,
197
                true,
198
                false,
199
                false,
200
                true,
201
                0
202
        );
203
        sqlbuilder.create_table().add_column(
204
                "geom",
205
                DataTypes.GEOMETRY,
206
                0,
207
                0,
208
                0,
209
                false,
210
                false,
211
                true,
212
                false,
213
                null
214
        );
215

  
216
        
217
        // CREATE TABLE "test1" ("name" VARCHAR(45) DEFAULT NULL, "id" INTEGER PRIMARY KEY AUTO_INCREMENT DEFAULT '0' NOT NULL, "geom" GEOMETRY ); ALTER TABLE "test1" ADD CONSTRAINT IF NOT EXISTS "constraint_test1_geom_dim" CHECK ST_CoordDim("geom") = 2
218
        System.out.println("# Test:: testCreateTable");
219
        System.out.println("# SQL:: " + sqlbuilder.toString());
220
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
221
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
222
        assertEquals(
223
                "CREATE TABLE \"dbo\".\"TEST1\" (\"name\" NVARCHAR2(45) DEFAULT NULL, \"id\" NUMBER(9,0), \"geom\"  SDO_GEOMETRY DEFAULT NULL ); ALTER TABLE \"dbo\".\"TEST1\" ADD PRIMARY KEY (\"id\"); CREATE SEQUENCE \"GVSEQ_TEST1_ID\"; CREATE OR REPLACE TRIGGER \"GVSER_TEST1_ID\" BEFORE INSERT ON \"dbo\".\"TEST1\" FOR EACH ROW BEGIN SELECT \"GVSEQ_TEST1_ID\".NEXTVAL INTO :new.\"id\" FROM dual; END;; DELETE FROM MDSYS.OGIS_GEOMETRY_COLUMNS WHERE F_TABLE_SCHEMA = 'dbo' AND F_TABLE_NAME = 'TEST1' AND F_GEOMETRY_COLUMN = 'geom'; INSERT INTO MDSYS.OGIS_GEOMETRY_COLUMNS (F_TABLE_SCHEMA, F_TABLE_NAME, F_GEOMETRY_COLUMN, GEOMETRY_TYPE) VALUES ('dbo', 'TEST1', 'geom', 0)",
224
                sqlbuilder.toString()
225
        );
226
        assertEquals(
227
                "[]",
228
                ArrayUtils.toString(sqlbuilder.variables_names())
229
        );
230
        assertEquals(
231
                "[]",
232
                ArrayUtils.toString(sqlbuilder.parameters_names())
233
        );
234
    }
235

  
236
    public void testDropTable() throws Exception {
237
        SQLBuilder sqlbuilder = createSQLBuilder();
238
        ExpressionBuilder expbuilder = sqlbuilder.expression();
239
        
240
        sqlbuilder.drop_table().table().database("master").schema("dbo").name("test1");
241

  
242
        // DROP TABLE "test1"
243
        
244
        System.out.println("# Test:: testDropTable");
245
        System.out.println("# SQL:: " + sqlbuilder.toString());
246
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
247
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
248
        assertEquals(
249
                "DROP TABLE \"dbo\".\"TEST1\"",
250
                sqlbuilder.toString()
251
        );
252
        assertEquals(
253
                "[]",
254
                ArrayUtils.toString(sqlbuilder.variables_names())
255
        );
256
        assertEquals(
257
                "[]",
258
                ArrayUtils.toString(sqlbuilder.parameters_names())
259
        );
260
    }
261
    
262
    public void testFetchFeatureProviderByReference() throws Exception {
263
        SQLBuilder sqlbuilder = createSQLBuilder();
264
        ExpressionBuilder expbuilder = sqlbuilder.expression();
265
        
266
        String value = "yoyo";
267
        sqlbuilder.select().column().name("name");
268
        sqlbuilder.select().column().name("id");
269
        sqlbuilder.select().column().name("geom").as_geometry();
270
        sqlbuilder.select().from().table().database("master").schema("dbo").name("test1");
271
        sqlbuilder.select().where().set(
272
            expbuilder.eq(
273
                expbuilder.column("name"),
274
                expbuilder.parameter(value).as_constant()
275
            )
276
        );
277
        sqlbuilder.select().limit(1);
278

  
279
        // SELECT "name", "id", ST_AsBinary("geom") FROM "master"."dbo"."TEST1" WHERE ( ("name") = (?) ) LIMIT 1
280

  
281
        System.out.println("# Test:: testFetchFeatureProviderByReference");
282
        System.out.println("# SQL:: " + sqlbuilder.toString());
283
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
284
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
285
        assertEquals(
286
                "SELECT \"name\", \"id\", NVL2((\"geom\"),(\"geom\").Get_WKB(),NULL) FROM \"dbo\".\"TEST1\" WHERE ( (\"name\") = (?) ) AND  ROWNUM <= 1",
287
                sqlbuilder.toString()
288
        );
289
        assertEquals(
290
                "[geom, id, name]",
291
                ArrayUtils.toString(sqlbuilder.variables_names())
292
        );
293
        assertEquals(
294
                "['yoyo']",
295
                ArrayUtils.toString(sqlbuilder.parameters_names())
296
        );
297
    }
298
    
299
    public void testFetchFeatureType() throws Exception {
300
        SQLBuilder sqlbuilder = createSQLBuilder();
301
        ExpressionBuilder expbuilder = sqlbuilder.expression();
302

  
303
        sqlbuilder.select().column().all();
304
        sqlbuilder.select().from().table().database("master").schema("dbo").name("test1");
305
        sqlbuilder.select().limit(1);
306

  
307
        System.out.println("# Test:: testFetchFeatureType");
308
        System.out.println("# SQL:: " + sqlbuilder.toString());
309
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
310
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
311
        
312
        //# Test:: testFetchFeatureType
313
        //# SQL:: SELECT * FROM "test1" LIMIT 1
314
        //# Variables:: []
315
        //# Parametros:: []        
316
        
317
        assertEquals(
318
                "SELECT * FROM \"dbo\".\"TEST1\" WHERE  ROWNUM <= 1",
319
                sqlbuilder.toString()
320
        );
321
        assertEquals(
322
                "[]",
323
                ArrayUtils.toString(sqlbuilder.variables_names())
324
        );
325
        assertEquals(
326
                "[]",
327
                ArrayUtils.toString(sqlbuilder.parameters_names())
328
        );
329
    }
330
        
331
    public void testPerformDeletes() throws Exception {
332
        SQLBuilder sqlbuilder = createSQLBuilder();
333
        ExpressionBuilder expbuilder = sqlbuilder.expression();
334

  
335
        sqlbuilder.delete().table().database("master").schema("dbo").name("test1");
336
        sqlbuilder.delete().where().set(
337
            expbuilder.eq( 
338
                expbuilder.column("id1"),
339
                expbuilder.parameter("id1").as_variable()
340
            )
341
        );
342
        sqlbuilder.delete().where().and(
343
            expbuilder.eq( 
344
                expbuilder.column("id2"),
345
                expbuilder.parameter("id2").as_variable()
346
            )
347
        );
348

  
349
        System.out.println("# Test:: testPerformDeletes");
350
        System.out.println("# SQL:: " + sqlbuilder.toString());
351
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
352
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
353
        assertEquals(
354
                "DELETE FROM \"dbo\".\"TEST1\" WHERE ( (( (\"id1\") = (?) )) AND (( (\"id2\") = (?) )) )",
355
                sqlbuilder.toString()
356
        );
357
        assertEquals(
358
                "[id1, id2]",
359
                ArrayUtils.toString(sqlbuilder.variables_names())
360
        );
361
        assertEquals(
362
                "[\"id1\", \"id2\"]",
363
                ArrayUtils.toString(sqlbuilder.parameters_names())
364
        );
365
    }
366

  
367
    public void testPerformInserts1() throws Exception {
368
        IProjection proj = CRSFactory.getCRS("EPSG:4326");
369

  
370
        SQLBuilder sqlbuilder = createSQLBuilder();
371
        GeometryExpressionBuilder expbuilder = sqlbuilder.expression();
372

  
373
        sqlbuilder.insert().table().database("master").schema("dbo").name("test1");
374
        sqlbuilder.insert().column().name("id").with_value(expbuilder.parameter("id"));
375
        sqlbuilder.insert().column().name("name").with_value(expbuilder.parameter("name"));
376
        sqlbuilder.insert().column().name("geom").with_value(expbuilder.parameter("geom").as_geometry_variable().srs(proj));
377
        
378
        System.out.println("# Test:: testPerformInserts1");
379
        System.out.println("# SQL:: " + sqlbuilder.toString());
380
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
381
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
382
        assertEquals(
383
                "INSERT INTO \"dbo\".\"TEST1\" ( \"id\", \"name\", \"geom\" ) VALUES ( ?, ?, NVL2((?),SDO_GEOMETRY((?), (4326)),NULL) )",
384
                sqlbuilder.toString()
385
        );
386
        assertEquals(
387
                "[geom, id, name]",
388
                ArrayUtils.toString(sqlbuilder.variables_names())
389
        );
390
        assertEquals(
391
                "[\"id\", \"name\", \"geom\", \"geom\"]",
392
                ArrayUtils.toString(sqlbuilder.parameters_names())
393
        );
394
    }
395

  
396
    public void testPerformInserts2() throws Exception {
397
        IProjection proj = CRSFactory.getCRS("EPSG:4326");
398

  
399
        SQLBuilder sqlbuilder = createSQLBuilder();
400
        GeometryExpressionBuilder expbuilder = sqlbuilder.expression();
401

  
402
        sqlbuilder.insert().table().database("master").schema("dbo").name("test1");
403
        sqlbuilder.insert().column().name("id").with_value(expbuilder.parameter("id"));
404
        sqlbuilder.insert().column().name("name").with_value(expbuilder.parameter("name"));
405
        sqlbuilder.insert().column().name("geom").with_value(expbuilder.parameter("geom").as_geometry_variable().srs(proj));
406
        
407
        System.out.println("# Test:: testPerformInserts2");
408
        System.out.println("# SQL:: " + sqlbuilder.toString());
409
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
410
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
411
        assertEquals(
412
                "INSERT INTO \"dbo\".\"TEST1\" ( \"id\", \"name\", \"geom\" ) VALUES ( ?, ?, NVL2((?),SDO_GEOMETRY((?), (4326)),NULL) )",
413
                sqlbuilder.toString()
414
        );
415
        assertEquals(
416
                "[geom, id, name]",
417
                ArrayUtils.toString(sqlbuilder.variables_names())
418
        );
419
        assertEquals(
420
                "[\"id\", \"name\", \"geom\", \"geom\"]",
421
                ArrayUtils.toString(sqlbuilder.parameters_names())
422
        );
423
    }
424

  
425
    public void testPerformUpdates1() throws Exception {
426
        IProjection proj = CRSFactory.getCRS("EPSG:4326");
427

  
428
        SQLBuilder sqlbuilder = createSQLBuilder();
429
        GeometryExpressionBuilder expbuilder = sqlbuilder.expression();
430

  
431
        sqlbuilder.update().table().database("master").schema("dbo").name("test1");
432
        sqlbuilder.update().where().set(
433
            expbuilder.eq(
434
                expbuilder.column("id"), 
435
                expbuilder.parameter("id").as_variable()
436
            )
437
        );
438
        sqlbuilder.update().column().name("name").with_value(expbuilder.parameter("name"));
439
        sqlbuilder.update().column().name("geom").with_value(
440
                expbuilder.parameter("geom").as_geometry_variable().srs(proj) 
441
        );
442

  
443
        System.out.println("# Test:: testPerformUpdates");
444
        System.out.println("# SQL:: " + sqlbuilder.toString());
445
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
446
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
447
        assertEquals(
448
                "UPDATE \"dbo\".\"TEST1\" SET \"name\" = ?, \"geom\" = NVL2((?),SDO_GEOMETRY((?), (4326)),NULL) WHERE ( (\"id\") = (?) )",
449
                sqlbuilder.toString()
450
        );
451
        assertEquals(
452
                "[geom, id, name]",
453
                ArrayUtils.toString(sqlbuilder.variables_names())
454
        );
455
        assertEquals(
456
                "[\"name\", \"geom\", \"geom\", \"id\"]",
457
                ArrayUtils.toString(sqlbuilder.parameters_names())
458
        );
459
    }
460

  
461
    public void testPerformUpdates2() throws Exception {
462
        IProjection proj = CRSFactory.getCRS("EPSG:4326");
463

  
464
        SQLBuilder sqlbuilder = createSQLBuilder();
465
        GeometryExpressionBuilder expbuilder = sqlbuilder.expression();
466

  
467
        sqlbuilder.update().table().database("master").schema("dbo").name("test1");
468
        sqlbuilder.update().where().set(
469
            expbuilder.eq(
470
                expbuilder.column("id"), 
471
                expbuilder.parameter("id").as_variable()
472
            )
473
        );
474
        sqlbuilder.update().column().name("name").with_value(expbuilder.parameter("name"));
475
        sqlbuilder.update().column().name("geom").with_value(
476
                expbuilder.parameter("geom").as_geometry_variable()
477
                        .srs(expbuilder.parameter().value(proj)) 
478
        );
479

  
480
        System.out.println("# Test:: testPerformUpdates");
481
        System.out.println("# SQL:: " + sqlbuilder.toString());
482
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
483
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
484
        assertEquals(
485
                "UPDATE \"dbo\".\"TEST1\" SET \"name\" = ?, \"geom\" = NVL2((?),SDO_GEOMETRY((?), (?)),NULL) WHERE ( (\"id\") = (?) )",
486
                sqlbuilder.toString()
487
        );
488
        
489
        assertEquals(
490
                "[geom, id, name]",
491
                ArrayUtils.toString(sqlbuilder.variables_names())
492
        );
493
        assertEquals(
494
                "[\"name\", \"geom\", \"geom\", 4326, \"id\"]",
495
                ArrayUtils.toString(sqlbuilder.parameters_names())
496
        );
497
    }
498

  
499
    public void testGrant1() throws Exception {
500

  
501
        SQLBuilder sqlbuilder = createSQLBuilder();
502
        ExpressionBuilder expbuilder = sqlbuilder.expression();
503

  
504
        sqlbuilder.grant().table().database("master").schema("dbo").name("test1");
505
        sqlbuilder.grant().role("prueba").select().insert().update();
506
        sqlbuilder.grant().role("gis").all();
507
                
508
        
509
        System.out.println("# Test:: testGrant1");
510
        System.out.println("# SQL:: " + sqlbuilder.toString());
511
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
512
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
513
        assertEquals(
514
                "",
515
                sqlbuilder.toString()
516
        );
517
        assertEquals(
518
                "[]",
519
                ArrayUtils.toString(sqlbuilder.variables_names())
520
        );
521
        assertEquals(
522
                "[]",
523
                ArrayUtils.toString(sqlbuilder.parameters_names())
524
        );
525
    }
526

  
527
    public void testGrant2() throws Exception {
528

  
529
        SQLBuilder sqlbuilder = new SQLBuilderBase();
530
        ExpressionBuilder expbuilder = sqlbuilder.expression();
531

  
532
        sqlbuilder.grant().table().database("master").schema("dbo").name("test1");
533
        sqlbuilder.grant().role("prueba").privilege(Privilege.SELECT)
534
                .privilege(Privilege.INSERT)
535
                .privilege(Privilege.UPDATE);
536
        sqlbuilder.grant().role("gis").privilege(Privilege.ALL);
537
                
538
        
539
        System.out.println("# Test:: testGrant2");
540
        System.out.println("# SQL:: " + sqlbuilder.toString());
541
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
542
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
543
        assertEquals(
544
                "",
545
                sqlbuilder.toString()
546
        );
547
        assertEquals(
548
                "[]",
549
                ArrayUtils.toString(sqlbuilder.variables_names())
550
        );
551
        assertEquals(
552
                "[]",
553
                ArrayUtils.toString(sqlbuilder.parameters_names())
554
        );
555
    }
556

  
557
    public void testSelect() throws Exception {
558
        SQLBuilder sqlbuilder = createSQLBuilder();
559
        GeometryExpressionBuilder expbuilder = sqlbuilder.expression();
560
        
561
        IProjection proj = CRSFactory.getCRS("EPSG:4326");
562

  
563
        GeometryManager geometryManager = GeometryLocator.getGeometryManager();
564
        Polygon limit = geometryManager.createPolygon(Geometry.SUBTYPES.GEOM2D);
565
        limit.addVertex(0, 0);
566
        limit.addVertex(0, 100);
567
        limit.addVertex(100, 100);
568
        limit.addVertex(100, 0);
569
        limit.addVertex(0, 0);
570
        limit.setProjection(proj);
571

  
572
        sqlbuilder.select().column().value(expbuilder.parameter("Geometry").as_geometry_variable().srs(proj));
573
        sqlbuilder.select().column().value(expbuilder.parameter("ID").as_variable());
574
        sqlbuilder.select().column().value(expbuilder.constant(limit));
575
        sqlbuilder.select().from().table().database("master").schema("dbo").name("test1");
576

  
577
        System.out.println("# Test:: testSelect");
578
        System.out.println("# SQL:: " + sqlbuilder.toString());
579
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
580
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
581

  
582
        //# Test:: testCount
583
        //# SQL:: SELECT NVL2((?),SDO_GEOMETRY((?).Get_WKB(), (?)),NULL), "ID", SDO_GEOMETRY((TO_BLOB(HEXTORAW('000000000300000001000000050000000000000000000000000000000000000000000000004059000000000000405900000000000040590000000000004059000000000000000000000000000000000000000000000000000000000000'))), (4326)) FROM "dbo"."TEST1" 
584
        //# Variables:: []
585
        //# Parametros:: ["Geometry", "Geometry", "ID"]
586

  
587
        assertEquals(
588
                "SELECT NVL2((?),SDO_GEOMETRY((?), (4326)),NULL), ?, SDO_GEOMETRY((TO_BLOB(HEXTORAW('000000000300000001000000050000000000000000000000000000000000000000000000004059000000000000405900000000000040590000000000004059000000000000000000000000000000000000000000000000000000000000'))), (4326)) FROM \"dbo\".\"TEST1\"",
589
                sqlbuilder.toString()
590
        );
591
        assertEquals(
592
                "[]",
593
                ArrayUtils.toString(sqlbuilder.variables_names())
594
        );
595
        assertEquals(
596
                "[\"Geometry\", \"Geometry\", \"ID\"]",
597
                ArrayUtils.toString(sqlbuilder.parameters_names())
598
        );
599
    }
600
    
601

  
602
    public void testSelectIntersect() throws Exception {
603
        SQLBuilder sqlbuilder = createSQLBuilder();
604
        GeometryExpressionBuilder expbuilder = sqlbuilder.expression();
605
        
606
        IProjection proj = CRSFactory.getCRS("EPSG:4326");
607

  
608
        GeometryManager geometryManager = GeometryLocator.getGeometryManager();
609
        Polygon envelope = geometryManager.createPolygon(Geometry.SUBTYPES.GEOM2D);
610
        envelope.addVertex(0, 0);
611
        envelope.addVertex(0, 100);
612
        envelope.addVertex(100, 100);
613
        envelope.addVertex(100, 0);
614
        envelope.addVertex(0, 0);
615
        envelope.setProjection(proj);
616
        
617
        GeometryExpressionBuilderHelper.GeometryParameter column = expbuilder.parameter("Geometry").as_geometry_variable().srs(proj);
618

  
619
        sqlbuilder.select().column().value(column);
620
        sqlbuilder.select().column().value(expbuilder.parameter("ID").as_variable());
621
        sqlbuilder.select().from().table().database("master").schema("dbo").name("test1");
622
        sqlbuilder.select().where().set(
623
                expbuilder.not_is_null(column)).and(
624
                expbuilder.ST_Intersects(
625
                        column,
626
                        expbuilder.geometry(envelope, proj)
627
                )
628
        );
629

  
630
        System.out.println("# Test:: testSelect");
631
        System.out.println("# SQL:: " + sqlbuilder.toString());
632
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
633
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
634

  
635
        //# Test:: testCount
636
        //# SQL:: SELECT NVL2((?),SDO_GEOMETRY((?).Get_WKB(), (?)),NULL), "ID", SDO_GEOMETRY((TO_BLOB(HEXTORAW('000000000300000001000000050000000000000000000000000000000000000000000000004059000000000000405900000000000040590000000000004059000000000000000000000000000000000000000000000000000000000000'))), (4326)) FROM "dbo"."TEST1" 
637
        //# Variables:: []
638
        //# Parametros:: ["Geometry", "Geometry", "ID"]
639

  
640
        assertEquals(
641
                "SELECT NVL2((?),SDO_GEOMETRY((?), (4326)),NULL), ? FROM \"dbo\".\"TEST1\" WHERE ( (( (NVL2((?),SDO_GEOMETRY((?), (4326)),NULL)) IS NOT NULL )) AND ((SDO_RELATE(NVL2((?),SDO_GEOMETRY((?), (4326)),NULL), SDO_GEOMETRY((TO_BLOB(HEXTORAW('000000000300000001000000050000000000000000000000000000000000000000000000004059000000000000405900000000000040590000000000004059000000000000000000000000000000000000000000000000000000000000'))), (4326)), 'mask=ANYINTERACT') = 'TRUE')) )",
642
                sqlbuilder.toString()
643
        );
644
        assertEquals(
645
                "[]",
646
                ArrayUtils.toString(sqlbuilder.variables_names())
647
        );
648
        assertEquals(
649
                "[\"Geometry\", \"Geometry\", \"ID\", \"Geometry\", \"Geometry\", \"Geometry\", \"Geometry\"]",
650
                ArrayUtils.toString(sqlbuilder.parameters_names())
651
        );
652
    }
653

  
654
    public void testWhereTRUE() throws Exception {
655
        SQLBuilder sqlbuilder = createSQLBuilder();
656
        GeometryExpressionBuilder expbuilder = sqlbuilder.expression();
657

  
658
        sqlbuilder.update().table().database("master").schema("dbo").name("test1");
659
        sqlbuilder.update().where().set(expbuilder.constant(true));
660
        sqlbuilder.update().column().name("name").with_value(expbuilder.parameter("name"));
661

  
662
        System.out.println("# Test:: testTRUE");
663
        System.out.println("# SQL:: " + sqlbuilder.toString());
664
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
665
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
666
        assertEquals(
667
                "UPDATE \"dbo\".\"TEST1\" SET \"name\" = ? WHERE (1=1)",
668
                sqlbuilder.toString()
669
        );
670
        assertEquals(
671
                "[name]",
672
                ArrayUtils.toString(sqlbuilder.variables_names())
673
        );
674
        assertEquals(
675
                "[\"name\"]",
676
                ArrayUtils.toString(sqlbuilder.parameters_names())
677
        );
678
    }
679
}
org.gvsig.oracle/tags/org.gvsig.oracle-2.0.153/org.gvsig.oracle.provider/src/test/java/org/gvsig/oracle/dal/TestUtils.java
1
package org.gvsig.oracle.dal;
2

  
3
import java.io.File;
4
import java.io.FileInputStream;
5
import java.io.FileOutputStream;
6
import java.net.URL;
7
import java.util.ArrayList;
8
import java.util.List;
9
import java.util.Properties;
10
import org.apache.commons.io.FileUtils;
11
import org.apache.commons.io.FilenameUtils;
12
import org.apache.commons.lang3.StringUtils;
13
import org.gvsig.fmap.dal.DALLocator;
14
import org.gvsig.fmap.dal.DataManager;
15
import org.gvsig.fmap.dal.DataStore;
16
import org.gvsig.fmap.dal.feature.Feature;
17
import org.gvsig.fmap.dal.feature.FeatureStore;
18
import org.gvsig.fmap.dal.feature.impl.DefaultFeature;
19
import org.gvsig.fmap.dal.feature.spi.FeatureProvider;
20
import org.gvsig.fmap.dal.store.jdbc.JDBCStoreParameters;
21
import org.gvsig.fmap.dal.store.jdbc2.JDBCHelper;
22
import org.gvsig.fmap.dal.store.jdbc2.JDBCServerExplorer;
23
import org.gvsig.fmap.dal.store.jdbc2.spi.FakeConnectionProvider;
24
import org.gvsig.tools.resourcesstorage.ResourcesStorage;
25
import org.slf4j.Logger;
26
import org.slf4j.LoggerFactory;
27

  
28
public class TestUtils  {
29
    
30
    public static final Logger LOGGER = LoggerFactory.getLogger(TestUtils.class);
31

  
32
    public static final String PROVIDER_NAME = OracleLibrary.NAME;
33
    public static final String TEST_USER = "P1";
34
    public static final String TEST_SCHEMA = "";
35
    public static final String TEST_DB_NAME = "orcl";
36

  
37
    public static OracleExplorerParameters buildDBConnection() throws Exception {
38
        DataManager dataManager = DALLocator.getDataManager();
39
        OracleExplorerParameters conn = (OracleExplorerParameters) 
40
                dataManager.createServerExplorerParameters(OracleLibrary.NAME);
41
        
42
        Properties p = new Properties();
43
        File userDirectory = FileUtils.getUserDirectory();
44
        String properties = FilenameUtils.concat(
45
                        userDirectory.getCanonicalPath(), 
46
                        ".gvSIG_Oracle_testDBConnection.properties");
47
        File fileProperties = new File(properties);
48
        if(!fileProperties.exists()) {
49
            p.setProperty("host", "127.0.0.1");
50
            p.setProperty("port", "1521");
51
            p.setProperty("dbuser", TEST_USER);
52
            p.setProperty("schema", TEST_SCHEMA);
53
            p.setProperty("password", "PASSWD");
54
            p.setProperty("dbname", TEST_DB_NAME);
55
            p.setProperty("mode", "service");
56
            p.store(new FileOutputStream(properties), "Oracle test DB connection");
57
        } else {
58
            FileInputStream fis = new FileInputStream(properties);
59
            p.load(fis);
60
        }
61

  
62
        conn.setDynValue("host", p.getProperty("host", null));
63
        conn.setDynValue("port", p.getProperty("port", null));
64
        conn.setDynValue("dbuser", p.getProperty("dbuser", null));
65
        conn.setDynValue("schema", p.getProperty("schema", null));
66
        conn.setDynValue("password", p.getProperty("password", null));
67
        conn.setDynValue("dbname", p.getProperty("dbname", null));
68
        conn.setDynValue("mode", p.getProperty("mode", null));
69

  
70
        return conn;
71
    }
72
    
73
    public static JDBCServerExplorer openServerExplorer() throws Exception {
74
        DataManager dataManager = DALLocator.getDataManager();
75
        OracleConnectionParameters conn = buildDBConnection();
76
        JDBCServerExplorer explorer = (JDBCServerExplorer) dataManager.openServerExplorer(
77
                PROVIDER_NAME, conn
78
        );
79
        return explorer;
80
    }
81
    
82
    public static File getTargetFolder() throws Exception {
83
        URL url = TestUtils.class.getResource("/");
84
        File x = new File(url.toURI());
85
        File target = x.getParentFile();
86
        return target;
87
    }
88
    
89
    public static File getResource(String name) throws Exception {
90
        File x = new File(getTargetFolder(), name);
91
        return x;
92
    }
93
    
94
    public static File getResourceAsFile(String pathname) throws Exception {
95
        URL url = TestUtils.class.getResource(pathname);
96
        File x = new File(url.toURI());
97
        return x;
98
    }
99

  
100
    public static void removeDALResource(String tableName) throws Exception {
101
//        OracleConnectionParameters connection = buildDBConnection(dbname);
102
//        DatabaseWorkspaceManager workspace = DALLocator.getDataManager().createDatabaseWorkspaceManager(
103
//                (DataServerExplorerParameters) connection
104
//        );
105
        
106
        JDBCServerExplorer explorer = openServerExplorer();
107
        JDBCStoreParameters params = explorer.get(tableName);
108

  
109
        ResourcesStorage resources = explorer.getResourcesStorage(params);
110
        
111
        resources.remove("dal");
112
    }
113

  
114
    public static FeatureStore openSourceStore1() throws Exception {
115
        DataManager dataManager = DALLocator.getDataManager();
116
        File f = getResourceAsFile("/org/gvsig/oracle/dal/testCreateSource1.csv");
117
        FeatureStore store = (FeatureStore) dataManager.openStore(
118
                DataStore.CSV_PROVIDER_NAME, 
119
                "file=",f,
120
                "automaticTypesDetection=", false,
121
                "locale=","en"
122
        );
123
        return store;
124
    }
125
 
126
    public static FeatureStore openSourceStoreShort() throws Exception {
127
        DataManager dataManager = DALLocator.getDataManager();
128
        File f = getResourceAsFile("/org/gvsig/oracle/dal/testCreateSource_short.csv");
129
        FeatureStore store = (FeatureStore) dataManager.openStore(
130
                DataStore.CSV_PROVIDER_NAME, 
131
                "file=",f,
132
                "automaticTypesDetection=", false,
133
                "locale=","en"
134
        );
135
        return store;
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff