用友U8导入工具
搜索
查看: 279|回复: 5

[资料] NCC常用实施工具SQL脚本

[复制链接]
 楼主| 发表于 2022-6-15 12:02:40 | 显示全部楼层 |阅读模式
扫码关注微信公众号

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册账号

x
一、NCC扩展表字段长度。


1. 确保执行如下存储过程。如果,已经执行过,无需重复执行create or replace procedure expandFieldLength(tablename in varchar2,fieldname in  varchar2,newlength in int) is   vsql varchar2(4000);begin      dbms_output.put_line('tablename='||tablename||', fieldname='|| fieldname ||', newlength='|| newlength);        -- 更新元数据   update md_property set attrlength = newlength    where classid in (select id from md_class where name =tablename)   and name =fieldname;   -- 更新 MD_columen   update md_column set columnlength=newlength where tableid= tablename and name=fieldname;      -- 更新表结构   vsql := 'alter table '|| tablename || ' modify '|| fieldname  || ' varchar('|| newlength || ') ';   EXECUTE IMMEDIATE vsql;      --  自定义字段,还需要前端设置自定义属性设置。      commit;end expandFieldLength;2.  针对要扩展的表的字段,调用上面的存储过程 。针对哪个表,哪个字段,改多长,请在下面脚本参数中修改begin  expandfieldlength('so_saleorder','vdef1',400);end;3. 如果是自定义字段,还需要在ncc 自定义属性设置中,设置字段的长度。非自定义字段,不用管。
 楼主| 发表于 2022-6-15 12:04:21 | 显示全部楼层
本帖最后由 zhou66 于 2022-6-15 12:05 编辑
  1. 1. 确保执行如下存储过程。如果,已经执行过,无需重复执行
  2. create or replace procedure expandFieldLength(tablename in varchar2,fieldname in  varchar2,newlength in int)
  3. is
  4.    vsql varchar2(4000);

  5. begin
  6.    
  7.    dbms_output.put_line('tablename='||tablename||', fieldname='|| fieldname ||', newlength='|| newlength);  
  8.    
  9.    -- 更新元数据
  10.    update md_property set attrlength = newlength
  11.    where classid in (select id from md_class where name =tablename)
  12.    and name =fieldname;

  13.    -- 更新 MD_columen
  14.    update md_column set columnlength=newlength where tableid= tablename and name=fieldname;
  15.    
  16.    -- 更新表结构
  17.    vsql := 'alter table '|| tablename || ' modify '|| fieldname  || ' varchar('|| newlength || ') ';
  18.    EXECUTE IMMEDIATE vsql;
  19.    
  20.    --  自定义字段,还需要前端设置自定义属性设置。
  21.    
  22.    commit;

  23. end expandFieldLength;


  24. 2.  针对要扩展的表的字段,调用上面的存储过程 。针对哪个表,哪个字段,改多长,请在下面脚本参数中修改
  25. begin
  26.   expandfieldlength('so_saleorder','vdef1',400);
  27. end;

  28. 3. 如果是自定义字段,还需要在ncc 自定义属性设置中,设置字段的长度。非自定义字段,不用管。
复制代码
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2022-7-7 14:27:42 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

发表于 2022-7-11 08:33:43 | 显示全部楼层
感谢大哥分享
回复 支持 反对

使用道具 举报

发表于 2022-7-26 19:43:49 手机发贴 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-5 10:58:47 | 显示全部楼层
如何根据主产品编码及联产品编码,快速导入BOM中的联产品设置?(注意联产品产量一定,都是0.05,单位都是kg)
[url=][/url]

  • 数据库创建一个临时表
    1. CREATE TABLE "PEIDA"."TEMP_A"
    2.    (        "MAINCODE" NVARCHAR2(50), --主产品编码
    3.         "SUBCODE" NVARCHAR2(50)     --联产品编码
    4.    )
    复制代码

  • PL/SQL Developer中,找到该表,右键   【编辑数据】。将主/联产品编码直接拷贝进入。提交
  • 编写SQL:insert into  ..... select  from 模式插入数据。
    1. insert into bd_bom_outputs (CASTUNITID,
    2. CBOM_OUTPUTSID,
    3. CBOMID,
    4. CCUSTOMERID,
    5. CCUSTOMERID_V,
    6. CMATERIALID,
    7. CMATERIALVID,
    8. CPRODUCTORID,
    9. CPROJECTID,
    10. CUNITID,
    11. CVENDORID,
    12. CVENDORID_V,
    13. DR,
    14. FOUTPUTTYPE,
    15. NASTOUTPUTNUM,
    16. NBYPRODSPTNUM,
    17. NOUTPUTNUM,
    18. PK_GROUP,
    19. PK_ORG,
    20. PK_ORG_V,
    21. TS,
    22. VBDEF1,
    23. VBDEF10,
    24. VBDEF11,
    25. VBDEF12,
    26. VBDEF13,
    27. VBDEF14,
    28. VBDEF15,
    29. VBDEF16,
    30. VBDEF17,
    31. VBDEF18,
    32. VBDEF19,
    33. VBDEF2,
    34. VBDEF20,
    35. VBDEF3,
    36. VBDEF4,
    37. VBDEF5,
    38. VBDEF6,
    39. VBDEF7,
    40. VBDEF8,
    41. VBDEF9,
    42. VCHANGERATE,
    43. VFREE1,
    44. VFREE10,
    45. VFREE2,
    46. VFREE3,
    47. VFREE4,
    48. VFREE5,
    49. VFREE6,
    50. VFREE7,
    51. VFREE8,
    52. VFREE9,
    53. VROWNO)

    54. select '0001Z0100000000000XI' as  CASTUNITID
    55. ,'0001INSERT' || LPAD(row_number() over(order by A.MAINCODE,A.Subcode),10,'0') as CBOM_OUTPUTSID
    56. , bom.cbomid
    57. , '~' as CCUSTOMERID
    58. , '~' as CCUSTOMERID_V
    59. , sm.pk_material  CMATERIALID
    60. , sm.pk_material CMATERIALVID
    61. , '~' CPRODUCTORID
    62. , '~' CPROJECTID
    63. ,'0001Z0100000000000XI' CUNITID,
    64.   '~' CVENDORID,
    65.   '~' CVENDORID_V,
    66.   0 DR,
    67.   2 FOUTPUTTYPE,
    68.   0.05 NASTOUTPUTNUM,
    69.   0.00 NBYPRODSPTNUM,
    70.   0.05 NOUTPUTNUM,
    71.   bom.pk_group PK_GROUP,
    72.   bom.pk_org PK_ORG,
    73.   bom.pk_org_v PK_ORG_V,
    74.   bom.ts as ts,
    75.   '~' VBDEF1,
    76.   '~' VBDEF10,
    77.   '~' VBDEF11,
    78.   '~' VBDEF12,
    79.   '~' VBDEF13,
    80.   '~' VBDEF14,
    81.   '~' VBDEF15,
    82.   '~' VBDEF16,
    83.   '~' VBDEF17,
    84.   '~' VBDEF18,
    85.   '~' VBDEF19,
    86.   '~'  VBDEF2,
    87.   '~' VBDEF20,
    88.   '~' VBDEF3,
    89.   '~' VBDEF4,
    90.   '~' VBDEF5,
    91.   '~' VBDEF6,
    92.   '~' VBDEF7,
    93.   '~' VBDEF8,
    94.   '~' VBDEF9,
    95. '1/1' VCHANGERATE,
    96.   '~' VFREE1,
    97.   '~' VFREE10,
    98.   '~' VFREE2,
    99.   '~' VFREE3,
    100.   '~' VFREE4,
    101.   '~' VFREE5,
    102.   '~' VFREE6,
    103.   '~' VFREE7,
    104.   '~' VFREE8,
    105.   '~' VFREE9,
    106. ROW_NUMBER()OVER(partition by A.Maincode order by A.Subcode) VROWNO  
    107. from temp_a A
    108. inner join bd_material mm on A.Maincode=mm.code and mm.dr=0
    109. inner join bd_bom bom on bom.hcmaterialid = mm.pk_material and bom.dr=0
    110. inner join bd_material sm on A.Subcode = sm.code and sm.dr=0

    复制代码







回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

QQ|站长微信|Archiver|手机版|小黑屋|用友之家 ( 蜀ICP备07505338号 )川公网安备 51072502110008号

GMT+8, 2022-8-13 19:55 , Processed in 0.021524 second(s), 10 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2005-2022.

快速回复 返回顶部 返回列表