人大金仓执行BulkCopy方法问题 返回
.net6环境调用BulkCopy方法插入数据时报错
SQL语句
select cast (pclass.oid as int4) as TableId,cast(ptables.tablename as varchar) as TableName,
pcolumn.column_name as DbColumnName,pcolumn.udt_name as DataType,
pcolumn.character_maximum_length as Length,
pcolumn.column_default as DefaultValue,
col_description(pclass.oid, pcolumn.ordinal_position) as ColumnDescription,
case when pkey.colname = pcolumn.column_name
then true else false end as IsPrimaryKey,
case when UPPER(pcolumn.column_default) like 'NEXTVAL%'
then true else false end as IsIdentity,
case when UPPER(pcolumn.is_nullable) = 'YES'
then true else false end as IsNullable
from (select * from sys_tables where UPPER(tablename) = UPPER('datatable') and lower(schemaname)='public') ptables inner join sys_class pclass
on ptables.tablename = pclass.relname inner join (SELECT *
FROM information_schema.columns
) pcolumn on pcolumn.table_name = ptables.tablename
left join (
select sys_class.relname,sys_attribute.attname as colname from
sys_constraint inner join sys_class
on sys_constraint.conrelid = sys_class.oid
inner join sys_attribute on sys_attribute.attrelid = sys_class.oid
and sys_attribute.attnum = sys_constraint.conkey[1]
inner join sys_type on sys_type.oid = sys_attribute.atttypid
where sys_constraint.contype='p'
) pkey on pcolumn.table_name = pkey.relname
order by ptables.tablename
热忱回答(20)
-
fate sta VIP02024/7/4
你是不是没有配置模式,先发出来是什么模式
//可以查看安装的模式 show database_mode; 不同库要配置模式
0 回复 -
信 VIP02024/7/4
@fate sta:
0 回复 -
fate sta VIP02024/7/4
你代码设置模式了吗
0 回复 -
信 VIP02024/7/4
@fate sta:
我设置好了,又报了新的错误
0 回复 -
fate sta VIP02024/7/4
@信:https://www.donet5.com/Home/Doc?typeId=2366
按模版提供一个DEMO,字段不要多,能重现就行
0 回复 -
信 VIP02024/7/40 回复
-
fate sta VIP02024/7/4
好的在处理中
0 回复 -
fate sta VIP02024/7/4
能重现在问金仓官方了
0 回复 -
信 VIP02024/7/4
@fate sta:麻烦了
0 回复 -
fate sta VIP02024/7/4
@信:
"mano_Budget" bit(1) NULL,
"mano_Measures" bit(1) NULL,
"mano_Other" bit(1) NULL,
这类型要改成 bool
0 回复 -
fate sta VIP02024/7/4
人大金仓中的bit应该不是Bool
0 回复 -
fate sta VIP02024/7/4
bool等于bool
0 回复 -
fate sta VIP02024/7/4
不是这个问题,还要排查新建2个字段的表好的。
0 回复 -
fate sta VIP02024/7/4
var d2=db.Queryable<object>().AS("td_ManageNode").ToDataTable(); var dr2=d2.NewRow(); dr2["ID"] = Guid.NewGuid() + ""; dr2["mano_ManageNodeID"] = "a"; dr2["mano_ProjectID"] = "a"; db.Fastest<object>().AS("td_ManageNode").BulkCopy(d2);
我这个代码测试通过了,你在这个基础改一个可以重现的
0 回复 -
fate sta VIP02024/7/4
基本可以确定是某个值有问题了
0 回复 -
fate sta VIP02024/7/4
重现了就是这个问题, bit改成bool
0 回复 -
fate sta VIP02024/7/4
pgsql中bit等于 byte[]
pgsql中的bool等于bool
你类型问题
0 回复 -
信 VIP02024/7/5
@fate sta:
新的问题,200000这个值存不进去,表中只有两个字段,id和price,还是昨天price的类型是money
0 回复 -
信 VIP02024/7/8
@fate sta:你好,老师 我上周提出的问题您有看到吗,关于money类型的值不能够正常保存的问题
0 回复 -
fate sta VIP02024/7/8
double 、float decimal 用这3个类型 。 money是sqlserver里面
0 回复