所以,这是在Oracle 10g/UTF-8数据库中创建表的代码:
CREATE TABLE TEST_SEMANTIC
(
SEMANTIC_COLBYTE char(2 byte) ,
SEMANTIC_COLCHAR char(2 char)
);
Run Code Online (Sandbox Code Playgroud)
意思是,我为两列(byte和char)使用了两种不同类型的语义.
然后我在数据库中插入这些相应的数据:
insert into test_semantic(SEMANTIC_COLBYTE,SEMANTIC_COLCHAR)
values('é','é');
Run Code Online (Sandbox Code Playgroud)
所以当我使用JDBC驱动程序在java程序中查询数据库并显示结果时,我希望输出如下:
Byte>é<
Char>é<
Run Code Online (Sandbox Code Playgroud)
虽然我得到了这个:
Byte>é<
Char>é <
Run Code Online (Sandbox Code Playgroud)
当我像这样查询数据库时:
select dump(semantic_colbyte,16),dump(semantic_colchar,16) from test_semantic;
Run Code Online (Sandbox Code Playgroud)
我明白了:
Typ=96 Len=2: c3,a9 Typ=96 Len=3: c3,a9,20
Run Code Online (Sandbox Code Playgroud)
这是java代码:
public static void main(String[] args){
Connection con = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch (java.lang.ClassNotFoundException e) {
System.err.print("ClassNotFoundException:");
System.err.println(e.getMessage());
}
try {
Properties props = new Properties();
props.put("user", "XXX");
props.put("password", "XXX");
con = DriverManager.getConnection("jdbc:oracle:thin:@xxx:1521:xxx", props);
Statement stmt = (Statement) con.createStatement(); …Run Code Online (Sandbox Code Playgroud)