人大金仓执行BulkCopy方法问题 返回

SqlSugar 处理完成
20 385
该叫什么 发布于2024/7/4
悬赏:0 飞吻

.net6环境调用BulkCopy方法插入数据时报错



image.png


SQL语句

image.png



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

  • 你是不是没有配置模式,先发出来是什么模式

    //可以查看安装的模式
    show database_mode;
    
    不同库要配置模式

    image.png

    0 回复
  • 信 VIP0
    2024/7/4

    @fate staimage.png

    0 回复
  • 你代码设置模式了吗

    0 回复
  • 信 VIP0
    2024/7/4

    @fate sta

    我设置好了,又报了新的错误

    image.png


    0 回复
  • @信https://www.donet5.com/Home/Doc?typeId=2366

    按模版提供一个DEMO,字段不要多,能重现就行

    0 回复
  • 信 VIP0
    2024/7/4

    @fate sta

    BulkCopyDemo.zip

    没有实体,我把建表脚本放在demoFIle文件夹下了,数据是从xml文件里取出来的,xml文件也在里面

    0 回复
  • 好的在处理中 

    0 回复
  • 能重现在问金仓官方了

    0 回复
  • 信 VIP0
    2024/7/4

    @fate sta:麻烦了

    0 回复
  • @信

    "mano_Budget" bit(1) NULL,

    "mano_Measures" bit(1) NULL,

    "mano_Other" bit(1) NULL,

     这类型要改成 bool

    0 回复
  • 人大金仓中的bit应该不是Bool

    0 回复
  • bool等于bool

    0 回复
  • 不是这个问题,还要排查新建2个字段的表好的。


    0 回复
  •     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 回复
  • 基本可以确定是某个值有问题了

    0 回复
  • image.png

    重现了就是这个问题, bit改成bool

    0 回复
  • pgsql中bit等于 byte[]

    pgsql中的bool等于bool 

    你类型问题

    0 回复
  • 信 VIP0
    2024/7/5

    @fate staimage.png


    新的问题,200000这个值存不进去,表中只有两个字段,id和price,还是昨天price的类型是money

    0 回复
  • 信 VIP0
    2024/7/8

    @fate sta:你好,老师   我上周提出的问题您有看到吗,关于money类型的值不能够正常保存的问题

    0 回复
  • double 、float decimal 用这3个类型  。 money是sqlserver里面

    0 回复