返回首页

gbase数据、南大通用产品文档:GBase8c

更新日期:2024年09月11日

示例1:通过本地文件导入导出数据
在基于,可以使用CopyManager 接口,通过流方式,将数据库中的数据导出到本地文
件或者将本地文件导入数据库中,文件格式支持CSV、TEXT 等格式。
样例程序如下,执行时需要加载GBase 8c 的JDBC 驱动。
import java.sql.Connection; import java.sql.DriverManager; import java.io.IOException; import
java.io.FileInputStream; import java.io.FileOutputStream; import java.sql.SQLException;
import org.postgresql.copy.CopyManager; import org.postgresql.core.BaseConnection;
public class Copy{
public static void main(String[] args)
{

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
311
String urls = new String("jdbc:postgresql://localhost:15432/postgres");//数据库URL
String username =
new String("username");//用户名
String password =
new String("passwd"); //密码
String tablename = new String("migration_table"); //定义表信息
String tablename1 = new String("migration_table_1"); //定义表信息
String driver = "org.postgresql.Driver";
Connection conn = null;
try {
Class.forName(driver);
conn = DriverManager.getConnection(urls, username, password);
} catch (ClassNotFoundException e)
{ e.printStackTrace(System.out);
} catch (SQLException e)
{ e.printStackTrace(System.out);
}
// 将表migration_table 中数据导出到本地文件d:/data.txt
try {
copyToFile(conn, "d:/data.txt", "(SELECT * FROM migration_table)");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block e.printStackTrace();
}
//将d:/data.txt 中的数据导入到migration_table_1 中。
try {
copyFromFile(conn, "d:/data.txt", tablename1);
} catch (SQLException e) {
// TODO Auto-generated catch block e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block e.printStackTrace();
}
// 将表migration_table_1 中的数据导出到本地文件d:/data1.txt
try {
copyToFile(conn, "d:/data1.txt", tablename1);
} catch (SQLException e) {
// TODO Auto-generated catch block e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block e.printStackTrace();
}
}

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
312
public static void copyFromFile(Connection connection, String filePath, String tableName)
throws SQLException, IOException {
FileInputStream fileInputStream = null; try {
CopyManager copyManager = new CopyManager((BaseConnection)connection);
fileInputStream = new FileInputStream(filePath);
copyManager.copyIn("COPY " + tableName + " FROM STDIN with (" +
"DELIMITER"+"'"+ delimiter + "'" + "ENCODING " + "'" + encoding + "')",
fileInputStream);
} finally {
if (fileInputStream != null)
{ try {
fileInputStream.close();
} catch (IOException e) { e.printStackTrace();
}
}
}
}
public static void copyToFile(Connection connection, String filePath, String tableOrQuery)
throws SQLException, IOException {
FileOutputStream fileOutputStream = null;
try {
CopyManager copyManager = new CopyManager((BaseConnection)connection);
fileOutputStream = new FileOutputStream(filePath);
copyManager.copyOut("COPY " + tableOrQuery + " TO STDOUT", fileOutputStream);
} finally {
if (fileOutputStream != null) { try {
fileOutputStream.close();
} catch (IOException e)
{ e.printStackTrace();
}
}
}
}
}

取值:[0|1]
默认值:0
说明:是否压缩存储delete bitmap,即在存储Filter 时,是否使用压缩。
这个参数默认为0,即不使用压缩,设为1 后使用压缩。
修改方式:
可使用set 语句修改值也可在配置文件中修改值。
适用于session、
global
范围均可。

函数说明
返回等于str 的字符串位置。
如果str 等于str1 则返回1,
如果str 等于str2 则返回
2,依次向后进行比较。都不相等时,返回值为0;如果所有对于FIELD()的参数
均为字符串,则所有参数均按照字符串进行比较;如果所有的参数均为数值,则
按照数值进行比较;如果str 为NULL,则返回值为0,原因是NULL 不能同任何
值进行同等比较。FIELD()是ELT()的补数。
示例
示例1:FIELD()的参数为字符串,所有参数按照字符串进行比较。
gbase> SELECT FIELD('ej','Hej', 'ej', 'Heja', 'hej', 'foo') FROM dual;
+-----------------------------------------------+
| FIELD('ej','Hej', 'ej', 'Heja', 'hej', 'foo') |
+-----------------------------------------------+
|
2 |
+-----------------------------------------------+
1 row in set
示例2:FIELD()的参数为数字,所有参数按照数字进行比较。
gbase> SELECT FIELD('112','12','112','123','213') FROM dual;
+-------------------------------------+
| FIELD('112','12','112','123','213') |
+-------------------------------------+
|
2 |
+-------------------------------------+
1 row in set
示例3:str 与str1,...strn 都不相等,返回值为0。
gbase> SELECT FIELD('fo','Hej', 'ej', 'Heja', 'hej', 'foo') FROM dual;
+-----------------------------------------------+
| FIELD('fo','Hej', 'ej', 'Heja', 'hej', 'foo') |
+-----------------------------------------------+
|
0 |
+-----------------------------------------------+
1 row in set