返回首页

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

更新日期:2024年09月11日

注意事项中用例
示例
示例1:“rmt:”与select_syntax 之间不能有空格。
可正确导出数据的语句:
rmt:SELECT * FROM cust INTO OUTFILE '/home/gbase/temp/cust.txt';
会报语法错误的语句:
rmt: SELECT * FROM cust INTO OUTFILE '/home/gbase/temp/cust.txt';
示例2:file_path,以及FIELD_OPTION 中的字段分隔符,字段包围符,转义标
识符等均必须用单引号“'”包围,否则无法正常导出数据。
可正确导出数据的语句:
rmt:SELECT * FROM cust INTO OUTFILE '/home/gbase/temp/cust.txt';
会报语法错误的语句:
rmt:SELECT * FROM cust INTO OUTFILE /home/gbase/temp/cust.txt;
示例3:远程导出不支持顶层查询是UNION 类查询。
会报语法错误的语句:
rmt:SELECT * FROM cust UNION SELECT * FROM product INTO

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
1257
OUTFILE '/home/gbase/temp/product.txt';
ERROR 1149 (42000): (GBA-02SC-1001) SELECT INTO OUTFILE with
UNION is not supported.
示例4:远程导出的目标文件如果已经在本地存在,则不能通过select
@@error_count 来获得错误数,原因为文件是否存在由客户端判断,而
@@error_count 是服务端变量。
示例中所用的表及数据:
create table t(id int);
insert into t values(1);
导出SQL 语句:
gbase> rmt:select * from t into outfile '/home/gbase/t.txt';
Query OK, 1 row affected
gbase> rmt:select * from t into outfile '/home/gbase/t.txt';
ERROR:
Can't open file '/home/gbase/t.txt' to write. Caused by: File exists
gbase> select @@error_count;
+---------------+
| @@error_count |
+---------------+
|
0 |
+---------------+
1 row in set

以下主题显示如何从 Java™ 类创建 UDR。
创建 UDR:
1. 编写要注册为 UDR 的具有一个或多个静态方法的 Java 类。
有关更多信息,请参阅Java 类的要求。
2. 在数据库服务器上创建一个 sbspace 保存包含此 UDR 代码的 JAR 文件。
有关创建 sbspace 的更多信息,请参阅您的数据库服务器的 GBase 8s 管理员指南
和 J/Foundation 开发者指南。
3. 打开一个 JDBC 连接。
请确保连接对象具有与其相关联的数据库对象。有关详细信息,请参阅连接至数据
库。
4. 安装 UDRManager 对象和 UDRMetaData 对象:
UDRManager udrmgr = new UDRManager(myConn);
UDRMetaData mdata = new UDRMetaData();
5. 创建 java.lang.Reflect.Method 对象,以便静态方法可注册为 UDR。
在以下示例中,method1 是代表 Group1 Java 类的 udr1(string, string) 方法的实例;
method2 是代表 Group1 Java 类的 udr2(Integer, String, String)方法的实例:
Class gp1 = Class.forName("Group1");
Method method1 = gp1.getMethod("udr1",
new Class[]{String.class, String.class});

GBase 8s JDBC Driver 程序员指南
南大通用数据技术股份有限公司
- 176
-
Method method2 = gp1.getMethod("udr2",
new Class[]{Integer.class, String.class, String.class});
6. 指定要注册为 UDR 的方法。
第二个参数指定 UDR 的 SQL 名称:
mdata.setUDR(method1, "group1_udr1");
mdata.setUDR(method2, "group1_udr2");
有关更多信息,请参阅创建 UDR。
7. 指定 JAR 文件 SQL 名:
mdata.setJarFileSQLName("group1_jar");
8. 如果需要,请指定驱动程序应将 JAR 文件放在数据库服务器文件系统中的路径名
称:
String pathname = "/work/srv93/examples";
udrmgr.setJarFileTmpPath(pathname);
请确保数据服务器文件系统中存在此路径。有关更多信息,请参阅指定 JAR 文件
临时路径。
9. 在数据库服务器中安装 UDR:
udrmgr.createUDRs(mdata, "Group1.jar", "Group1", 0);
有关更多信息,请参阅创建 UDR。
有关创建 UDR 的完整示例代码,请参阅使用 UDRManager 创建 UDR。

查询时,可以组合使用表达句法中的操作符,操作符的优先级如下:
1.
/;
2.
^ $ ;
3.
"" near ();
4.
|;
5.
- ;
6.
&;
优先级顺序从高到低,同一行操作符为同一级别优先级。