返回首页

gbase数据、南大通用产品文档:GBase8s检索数据示例

更新日期:2024年09月11日

下列示例展示从 GBase 8s 数据库列检索数据,
以及将数据库转换为 XML 解析器可接受的
格式。
StringtoDOM() 示例
此示例在 xmlcol 是包含 XML 数据的 lvarchar 类型列的假设之下操作。
可以下列代码访存
数据并转换为 DOM:
ResultSet r = stmt.executeQuery("select xmlcol from table where
...");
while (r.next()
{
Document doc= UtilXML.StringtoDOM(r.getString("xmlcol"));
// Process ‘doc'
}
InputStreamtoDOM() 示例
下列示例将 XML 数据从 text 列访存至 DOM 对象内:
try
{
String sql = "select col1 from tab2";
Statement stmt = conn.createStatement();
ResultSet r = stmt.executeQuery(sql);
while(r.next())
{
Document doc = UtilXML.InputStreamtoDOM(r.getAsciiStream(1));
}
r.close();
}
catch (Exception e)
{
// Error handling
}
getInputSource() 示例
此示例检索存储在列 xmlcol 中的 XML 数据,并将它转换为 InputSource 类型的对象;然
后,可以任何 SAM 或 DOM 解析方法,来使用 InputSource 对象 i:

GBase 8s JDBC Driver 程序员指南
南大通用数据技术股份有限公司
- 100
-
InputSource i = UtilXML.getInputSource
(resultset.getString("xmlcol"));
此示例使用 xerces.jar 中的 JAXP API 实现,来解析 xmlcol 列中访存了的 XML 数据:
InputSource input = UtilXML.getInputSource(resultset.getString("xmlcol"));
SAXParserFactory f = SAXParserFactory.newInstance();
SAXParser parser = f.newSAXParser();
parser.parse(input);
在下列示例中,tab1 是以 SQL 语句创建的表:
create table tab1 (col1 lvarchar);
下列示例将 XML 数据从 LVARCHAR 列检索至 InputSource 对象内,用于解析。此示例
通过调用 org.apache.xerces.parsers.SAXParser 处的解析器,来使用 SAX 解析。
try
{
String sql = "select col1 from tab1";
Statement stmt = conn.createStatement();
ResultSet r = stmt.executeQuery(sql);
Parser p =
ParserFactory.makeParser("org.apache.xerces.parsers.SAXParser");
while(r.next())
{
InputSource i = UtilXML.getInputSource(r.getString(1));
p.parse(i);
}
r.close();
}
catch (SQLException e)
{
// Error handling
}
下列示例将 XML 数据从 text 列访存至 InputSource 对象内,用于解析。此示例与前一示
例相同,但它使用 JAXP factory 方法,而不是 SAX 解析器来分析数据。
try
{
String sql = "select col1 from tab2";
Statement stmt = conn.createStatement();
ResultSet r = stmt.executeQuery(sql);

GBase 8s JDBC Driver 程序员指南
南大通用数据技术股份有限公司
- 101
-
SAXParserFactory factory = SAXParserFactory.newInstance();
Parser p = factory.newSAXParser();
while(r.next())
{
InputSource i = UtilXML.getInputSource(r.getAsciiStream(1));
p.parse(i);
}
r.close();
}
catch (Exception e)
{
// Error handling
}

5 操作 GBase 8s 类型
这些主题说明特定于 GBase 8s JDBC Driver 中支持的 GBase 8s(而不是 opaque 类型)。
要获取关于 opaque 类型的信息,请参阅 与不透明数据类型一起使用。

单值数据类型具有与数据库中某些其他源数据类型相同的内部结构。源类型可以是内
置或扩展数据类型。单值类型与其源类型的区别在于对单值类型定义的支持函数。
同一个表中 DISTINCT 集合数据类型(SET、LIST 和 MULTISET)的列不超过 97
列。同一个表中类型为 DISTINCT(基于 BYTE、TEXT、ROW、LVARCHAR、
NVARCHAR 或 VARCHAR 源类型)的列不超过 195 列。(此处的 195 列接近基页大
小为 2 Kb 的平台适用的下限。对于基页大小为 4 Kb 的平台,例如 AIX® 系统,这些数
据类型的列上限约为 450 列。)有关更多信息,请参阅 DISTINCT 数据类型一节。另请
参阅 GBase 8s 用户定义的例程与数据类型开发者指南。

参数说明:用户安装时自定义配置信息,该参数不允许修改。
该参数属于POSTMASTER 类型参数,请参考表15-1 中对应设置方法进行设置。
默认值:字符串,安装时用户自定义配置