Oracle JDBC Resultset.getString( "COLUMN_DEF" ) 返回小写带引号的字符串



使用oracle JDBC驱动程序(ojdbc7.jar(,当我为数据库中默认值为"N/a"的列执行x=Resultset.getString("COLUMN_DEF"(时(在创建表时设置"N/a’,在DBeaver工具中看到"N/a‘(,JDBC驱动程序返回x="'N/a'"(使用postgres和mysql,返回x="N/a"(。

你知道为什么它是小写的吗?为什么它在结果字符串中被引用?

提前感谢您在这个问题上提供的任何帮助!

PS:我如何使用数据库元数据对象:

private static void readColumnMetaData(AMIDBLoader dbLoader, DatabaseMetaData metaData, String internalCatalog, String externalCatalog, String _table, Map<String, String> amiEntityMap, Map<String, String> amiFieldMap) throws SQLException
{
try(ResultSet resultSet = metaData.getColumns(internalCatalog, internalCatalog, _table, "%"))
{
while(resultSet.next())
{
String table = resultSet.getString("TABLE_NAME");
String name = resultSet.getString("COLUMN_NAME");
String type = resultSet.getString("TYPE_NAME");
int size = resultSet.getInt("COLUMN_SIZE");
int digits = resultSet.getInt("DECIMAL_DIGITS");
String def = resultSet.getString("COLUMN_DEF");

创建表的代码:

CREATE TABLE "router_locations" ( 
"id" NUMBER(*, 0),
"continentCode" VARCHAR2(3) DEFAULT 'N/A',
"countryCode" VARCHAR2(3) DEFAULT 'N/A' 
);; 

Jerome

我们设法找到了修改字符串的位置,JDBC驱动程序正常。。谢谢你的帮助。

最新更新