使用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驱动程序正常。。谢谢你的帮助。