oracle中number对应java数据类型

原文链接:https://www.cnblogs.com/yadongliang/p/7727930.html

数据库中为number类型的字段,在Java类型中对应的有Integer和BigDecimal都会出现;
经测试发现当数据库为sql server和DB2时,用getObject()取出来时Integer类型,但是Oracle 中取出来就会是Integer或者BigDecimal类型。原因是oracle与java类型对应于number长度有关。
oracle常用收集 - 图1
遇到该类型问题,若要判断每个数据库和数据库字段长度不同对应的java数据类型不同太过烦琐,可采用getString()来取值,统一先转为string来判断

查询所有用户

  1. SELECT t.username AS "dbName" FROM all_users t

oracle根据所属用户查询表名注释

  1. SELECT
  2. t.owner as "dbName",
  3. t.table_name as "code",
  4. t.comments as "tableName "
  5. FROM
  6. all_tab_comments t
  7. WHERE
  8. t.table_type = 'TABLE'
  9. AND t.owner = 'JEESITE'

oracle根据所属用户查询视图名和注释

  1. SELECT
  2. t.table_type tableType,
  3. t.owner as "dbName",
  4. t.table_name as "code",
  5. t.comments as "tableName "
  6. FROM
  7. all_tab_comments t
  8. WHERE
  9. t.table_type = 'VIEW'
  10. AND t.owner = 'JEESITE'

通过所属用户 和表名查询字段信息

  1. --表字段信息 SELECT
  2. t.table_schema AS "dbName",
  3. a.table_name AS "tableCode",
  4. a.column_name AS "fieldCode",
  5. a.data_type AS "dataType",
  6. f.comments AS "fieldName"
  7. FROM
  8. all_tab_columns a
  9. INNER JOIN all_col_comments f ON a.OWNER = f.OWNER
  10. AND a.table_name = f.table_name
  11. AND a.column_name = f.column_name
  12. WHERE
  13. a.OWNER =?
  14. AND a.TABLE_NAME =?