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')
then 0
else 1
end as isdisplay
, case
when data_type in ('BIT', 'BOOL') then
'bool' 'bool'
WHEN data_type in ('SMALLINT') THEN 'short' when data_type in ('SMALLINT') then 'short'
WHEN data_type in ('TINYINT') THEN 'bool' when data_type in ('TINYINT') then 'bool'
WHEN data_type IN ('NUMBER', 'CHAR', 'INT', 'Year') THEN when data_type in ('NUMBER', 'CHAR', 'INT', 'Year') then
'int' 'int'
WHEN data_type in ('BIGINT') THEN when data_type in ('BIGINT') then
'bigint' 'bigint'
WHEN data_type IN ('FLOAT', 'DOUBLE', 'DECIMAL') THEN when data_type in ('FLOAT', 'DOUBLE', 'DECIMAL') then
'decimal' 'decimal'
WHEN data_type IN when data_type in
('CHAR', 'VARCHAR', 'TINY TEXT', 'TEXT', 'MEDIUMTEXT', 'LONGTEXT', 'TINYBLOB', 'BLOB', ('CHAR', 'VARCHAR', 'TINY TEXT', 'TEXT', 'MEDIUMTEXT', 'LONGTEXT', 'TINYBLOB', 'BLOB',
'MEDIUMBLOB', 'LONGBLOB', 'Time') THEN 'MEDIUMBLOB', 'LONGBLOB', 'Time') then
'string' 'string'
WHEN data_type IN ('Date', 'DateTime', 'TIMESTAMP(6)') THEN when data_type in ('Date', 'DateTime', 'TIMESTAMP(6)') then
'DateTime' 'DateTime'
ELSE 'string' else 'string'
END AS EntityType end as entitytype
from user_tab_columns utc, from user_tab_columns utc
user_col_comments ucc , user_col_comments ucc
where utc.table_name = ucc.table_name where utc.table_name = ucc.table_name
and utc.column_name = ucc.column_name and utc.column_name = ucc.column_name
and utc.table_name = '{ tableName}' and utc.table_name = '{tableName}'
order by column_id; "; order by column_id; ";
foreach (var context in _contexts) foreach (var context in _contexts)
{ {