如何在HSQLDB GUI中执行多个命令?

时间:2019-01-25 00:17:59

标签: sql hsqldb

我想从GUI执行许多命令。我想做很多这样的小组,但我不能让一个小组上班。我想我需要以某种方式强制它们之间进行提交,但是我不知道该怎么做。如果我依次按顺序执行这些命令中的每一个,一切都会按预期进行。

我正在使用GeoTools的EPSG.zip中的EPSG.dat

unzip EPSG.zip
perl -pi -e 's/readonly=true/readonly=false/' EPSG.properties

java -jar hsqldb-2.4.1.jar
jdbc:hsqldb:file:./EPSG

SET AUTOCOMMIT true;  -- Press Execute SQL, but this doesn't seem to help.

CREATE TEXT TABLE EPSG_UNITOFMEASURE_COPY (LIKE EPSG_UNITOFMEASURE);                                                      
GRANT all ON  EPSG_UNITOFMEASURE_COPY TO public;                                                                          
SET TABLE EPSG_UNITOFMEASURE_COPY SOURCE 'EPSG_UNITOFMEASURE_COPY.csv;encoding=UTF-8';                                    
INSERT INTO EPSG_UNITOFMEASURE_COPY SELECT * FROM EPSG_UNITOFMEASURE;                                                     
SET TABLE EPSG_UNITOFMEASURE_COPY SOURCE OFF;                                                                             

然后我得到一个错误:

user lacks privilege or object not found: EPSG_UNITOFMEASURE_COPY / Error Code: -5501 / State: 42501

我很确定这是一个object not found案例。

1 个答案:

答案 0 :(得分:0)

您不能将这些命令作为一个块执行。当架构定义语句引用架构对象时,该对象必须已经存在。

执行CREATE TEXT TABLE,然后可以将其余部分作为一个块执行。