fix #I7EKFG 关于使用oracle数据库时代码生成界面的问题

This commit is contained in:
yubaolee 2023-06-20 01:19:18 +08:00
parent 9f44dc8fee
commit dde72064a6

View File

@ -132,46 +132,51 @@ namespace OpenAuth.App
private IList<SysTableColumn> GetOracleStructure(string tableName) private IList<SysTableColumn> GetOracleStructure(string tableName)
{ {
var sql = $@" var sql = $@"
select utc.column_name as COLUMNNAME, select utc.column_name as columnname
utc.data_type COLUMNTYPE, , utc.data_type columntype
utc.data_length MaxLength, , utc.data_length maxlength
CASE utc.nullable WHEN 'N' THEN 0 ELSE 1 END IsNull, , case utc.nullable when 'N' then 0 else 1 end isnull
utc.data_default DEFAULTVAL, , utc.data_default defaultval
ucc.comments ""COMMENT"", , ucc.comments ""COMMENT""
UTC.table_name TABLENAME, , utc.table_name tablename
CASE UTC.COLUMN_NAME , case utc.column_name
WHEN (select col.column_name when (select col.column_name
from user_constraints con, from user_constraints con
user_cons_columns col , user_cons_columns col
where con.constraint_name = col.constraint_name where con.constraint_name = col.constraint_name
and con.constraint_type = 'P' and con.constraint_type = 'P'
and col.table_name = '{ tableName}') THEN 1 and col.table_name = '{tableName}') then 1
ELSE 0 END AS IsKey, else 0 end as iskey
CASE , case
WHEN data_type IN ('BIT', 'BOOL') THEN when utc.column_name in ('CreateUserId', 'UpdateUserId', 'Id')
'bool' then 0
WHEN data_type in ('SMALLINT') THEN 'short' else 1
WHEN data_type in ('TINYINT') THEN 'bool' end as isdisplay
WHEN data_type IN ('NUMBER', 'CHAR', 'INT', 'Year') THEN , case
'int' when data_type in ('BIT', 'BOOL') then
WHEN data_type in ('BIGINT') THEN 'bool'
'bigint' when data_type in ('SMALLINT') then 'short'
WHEN data_type IN ('FLOAT', 'DOUBLE', 'DECIMAL') THEN when data_type in ('TINYINT') then 'bool'
'decimal' when data_type in ('NUMBER', 'CHAR', 'INT', 'Year') then
WHEN data_type IN 'int'
('CHAR', 'VARCHAR', 'TINY TEXT', 'TEXT', 'MEDIUMTEXT', 'LONGTEXT', 'TINYBLOB', 'BLOB', when data_type in ('BIGINT') then
'MEDIUMBLOB', 'LONGBLOB', 'Time') THEN 'bigint'
'string' when data_type in ('FLOAT', 'DOUBLE', 'DECIMAL') then
WHEN data_type IN ('Date', 'DateTime', 'TIMESTAMP(6)') THEN 'decimal'
'DateTime' when data_type in
ELSE 'string' ('CHAR', 'VARCHAR', 'TINY TEXT', 'TEXT', 'MEDIUMTEXT', 'LONGTEXT', 'TINYBLOB', 'BLOB',
END AS EntityType 'MEDIUMBLOB', 'LONGBLOB', 'Time') then
from user_tab_columns utc, 'string'
user_col_comments ucc when data_type in ('Date', 'DateTime', 'TIMESTAMP(6)') then
where utc.table_name = ucc.table_name 'DateTime'
and utc.column_name = ucc.column_name else 'string'
and utc.table_name = '{ tableName}' end as entitytype
order by column_id; "; from user_tab_columns utc
, user_col_comments ucc
where utc.table_name = ucc.table_name
and utc.column_name = ucc.column_name
and utc.table_name = '{tableName}'
order by column_id; ";
foreach (var context in _contexts) foreach (var context in _contexts)
{ {