Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ApacheDerby:使用数据创建SQL转储_Java_Derby - Fatal编程技术网

Java ApacheDerby:使用数据创建SQL转储

Java ApacheDerby:使用数据创建SQL转储,java,derby,Java,Derby,有没有简单的方法可以从ApacheDerby数据库创建完整的SQL转储? 使用dblook工具,我成功地将数据库模式转储到一个sql文件中,但是似乎没有办法获得包含的数据 SquirreSQL可以为您的数据创建INSERT语句。那对你有用吗?我不知道是否存在一个库来从应用程序中执行同样的操作,Derby有批量导入/导出的过程。下面是使用ij工具导出APP.MESSAGES表的示例: >ij ij version 10.3 ij> connect 'jdbc:derby:dbName'

有没有简单的方法可以从ApacheDerby数据库创建完整的SQL转储?
使用dblook工具,我成功地将数据库模式转储到一个sql文件中,但是似乎没有办法获得包含的数据

SquirreSQL可以为您的数据创建INSERT语句。那对你有用吗?我不知道是否存在一个库来从应用程序中执行同样的操作,

Derby有批量导入/导出的过程。下面是使用
ij
工具导出
APP.MESSAGES
表的示例:

>ij
ij version 10.3
ij> connect 'jdbc:derby:dbName';
ij> CALL SYSCS_UTIL.SYSCS_EXPORT_TABLE('APP', 'MESSAGES',
                                  'myfile.del', null, null, 'UTF-8');
0 rows inserted/updated/deleted
有关您的版本,请参阅


这不是你要求的格式。除此之外,您可能还需要借助外部工具。

此unix shell脚本将APP database中所有表的数据转储到~/tmp/export/[TABLE].del文件中。这里假设数据库位于当前工作目录中的文件夹“db”中,并且derby安装在~/derby下。所以你看,它是非常定制的(为我自己的特殊需要而构建),但很容易调整。不,它不会进行SQL转储,它们都是derby CSV导出格式。但是,您可以使用此格式将数据导入到语句中,或导入到。希望这有帮助

UPD:我把我的derby脚本放在一起,好好享受吧!它有SQL转储;-)


你真的在寻找一个管理工具——你可能在这方面运气更好
#!/bin/sh

PATH=$PATH:$HOME/derby/bin
DIR="$HOME/tmp/export"

printf "connect 'jdbc:derby:db';\nshow tables in APP;" > show.sql

TABLES=$(ij show.sql | grep ^APP | awk '{print $2}' | sed 's/|//g')

echo $TABLES
for TABLE in $TABLES;
do      
        echo $TABLE
        printf "connect 'jdbc:derby:db';\nCALL SYSCS_UTIL.SYSCS_EXPORT_TABLE (null,'$TABLE','$DIR/$TABLE.del',null,null,null);" > export.sql
        ij export.sql
        if [ $? -ne "0" ]; then
                exit 1
        fi
done