使用oracle JDBC驱动程序(ojdbc7.jar),当我对数据库中默认值为“ N / A”(设置为“ N / A”)的列执行x = Resultset.getString(“ COLUMN_DEF”)时表创建,使用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
答案 0 :(得分:1)
我们设法找到了修改字符串的位置,并且JDBC驱动程序正常。.谢谢您的帮助。