Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 将主要类型表输入到程序_Sql_Sql Server_Xml_Performance_Types - Fatal编程技术网

Sql 将主要类型表输入到程序

Sql 将主要类型表输入到程序,sql,sql-server,xml,performance,types,Sql,Sql Server,Xml,Performance,Types,我试图从后端读取XML数据,并将数据作为typetable传递给过程。当我尝试使用小XML数据(500KB,1000行)时,该过程工作正常。但是,当我将它与60MB XML一起使用时,它永远不会响应,而且在dev数据库上工作的每个人都不能修改过程,服务也永远不会再次响应。我应该如何使用一个大的XML输入作为一个没有性能问题的类型 编辑:它工作了一个星期,但突然就不工作了 ALTER PROCEDURE [COR].[INSERT_BIC_CODES_TEST] @BICCODES_TABLE

我试图从后端读取XML数据,并将数据作为typetable传递给过程。当我尝试使用小XML数据(500KB,1000行)时,该过程工作正常。但是,当我将它与60MB XML一起使用时,它永远不会响应,而且在dev数据库上工作的每个人都不能修改过程,服务也永远不会再次响应。我应该如何使用一个大的XML输入作为一个没有性能问题的类型

编辑:它工作了一个星期,但突然就不工作了

ALTER PROCEDURE [COR].[INSERT_BIC_CODES_TEST] 
@BICCODES_TABLE COR.BICCODES_TYPE_TABLE READONLY, 
@ADDED_CODES_COUNT VARCHAR(MAX) 
OUTPUT 
AS 
  BEGIN 

        EXEC TRE.GENERAL_LOG_INSERT 'BATCH','COR.INSERT_BIC_CODES_TEST','ILK LOG',''

          DECLARE @ADDEDCOUNT INT = 0
          DECLARE @UPDATEDCOUNT INT = 0
          DECLARE @DELETEDCOUNT INT = 0

          DECLARE @MODIFICATION_FLAG CHAR(1)
          DECLARE @BANK_CODE CHAR(4) 
          DECLARE @COUNTRY_CODE CHAR(2) 
          DECLARE @CORRESPONDENT_BRANCH_CODE CHAR(5) 
          DECLARE @BANK_NAME VARCHAR(100) 
          DECLARE @CORRESPONDENT_BRANCH_NAME VARCHAR(40) 
          DECLARE @COUNTRY_NAME VARCHAR(50) 
          DECLARE @CITY_NAME VARCHAR(40) 
          DECLARE @ORIGINAL_COUNTRY_CODE CHAR(3) 
          DECLARE @OUR_ACCOUNT_NO INT 
          DECLARE @SECRETARY_GUARANTEE_FLAG CHAR(1) 
          DECLARE @COUNTRY_RISK VARCHAR(10) 
          DECLARE @ADDRESS VARCHAR(80) 
          DECLARE @AUTHENTICATION_FLAG CHAR(1) 
          DECLARE @LAST_UPDATING_CHANNEL_CODE CHAR(10) 
          DECLARE @LAST_UPDATING_TRAN_CODE CHAR(6) 
          DECLARE @LAST_UPDATING_USER_CODE VARCHAR(50) 
          DECLARE @LAST_UPDATE_DATE DATETIME 
          DECLARE @RECORD_STATUS CHAR(1) 
          DECLARE @ROUTERS_CODE_1 VARCHAR(20) 
          DECLARE @ROUTERS_CODE_2 VARCHAR(20) 
          DECLARE @ROUTERS_CODE_3 VARCHAR(20) 
          DECLARE @ROUTERS_CODE_4 VARCHAR(20) 
          DECLARE @ROUTERS_CODE_5 VARCHAR(20) 
          DECLARE @ROUTERS_CODE_6 VARCHAR(20) 
          DECLARE @ROUTERS_CODE_7 VARCHAR(20) 
          DECLARE @COUNTRY_CODE_NUMBER INT 
          DECLARE @ROUTERS_CODE_8 VARCHAR(20) 
          DECLARE @ROUTERS_CODE_9 VARCHAR(20) 
          DECLARE @ROUTERS_CODE_10 VARCHAR(20) 
          DECLARE @ROUTERS_CODE_11 VARCHAR(20) 
          DECLARE @ROUTERS_CODE_12 VARCHAR(20) 
          DECLARE @ROUTERS_CODE_13 VARCHAR(20) 
          DECLARE @ROUTERS_CODE_14 VARCHAR(20) 
          DECLARE @ROUTERS_CODE_15 VARCHAR(20) 

          DECLARE BICCODETMPCURSOR CURSOR FOR
            SELECT 
          CAST(MODIFICATION_FLAG AS CHAR),
          CAST(SUBSTRING(LTRIM(RTRIM(BIC_CODE)),0, 5) AS CHAR(4)) BANK_CODE,
          CAST(SUBSTRING(LTRIM(RTRIM(BIC_CODE)),5, 2) AS CHAR(2)) COUNTRY_CODE,
          CAST((SUBSTRING(LTRIM(RTRIM(BIC_CODE)),7, 2) + BRANCH_CODE) AS CHAR(5)) CORRESPONDENT_BRANCH_CODE,
          CAST(INSTITUTION_NAME AS VARCHAR(100)) BANK_NAME,
          CAST(BRANCH_INFORMATION AS VARCHAR(40)) CORRESPONDENT_BRANCH_NAME,
          CAST(ISNULL(COUNTRY_NAME,'') AS VARCHAR(50)) COUNTRY_NAME,
          CAST(CITY_HEADING AS VARCHAR(40)) CITY_NAME,
          CAST('' AS CHAR(3))ORIGINAL_COUNTRY_CODE,
          CAST(NULL AS INT)OUR_ACCOUNT_NO,
          CAST('' AS CHAR(1))SECRETARY_GUARANTEE_FLAG,
          CAST(NULL AS VARCHAR(10))COUNTRY_RISK,
          ISNULL(CAST(PHYSICAL_ADDRESS_1 + ' ' + PHYSICAL_ADDRESS_2 + ' ' + PHYSICAL_ADDRESS_3 + ' ' + PHYSICAL_ADDRESS_4 AS VARCHAR(80)),'EMPTY ADRESS') ADDRESS,
          CAST(NULL AS CHAR(1)) AUTHENTICATION_FLAG,
          CAST('XPORT' AS CHAR(10)) LAST_UPDATING_CHANEL_CODE,
          CAST('XPORT' AS CHAR(6)) LAST_UPDATING_TRAN_CODE,
          CAST('XPORT' AS VARCHAR(50)) LAST_UPDATING_USER_CODE,
          GETDATE() LAST_UPDATE_DATE,
          CAST('A' AS VARCHAR(20)) RECORD_STATUS,
          CAST(NULL AS VARCHAR(20)) ROUTERS_CODE_1,
          CAST(NULL AS VARCHAR(20)) ROUTERS_CODE_2,
          CAST(NULL AS VARCHAR(20)) ROUTERS_CODE_3,
          CAST(NULL AS VARCHAR(20)) ROUTERS_CODE_4,
          CAST(NULL AS VARCHAR(20)) ROUTERS_CODE_5,
          CAST(NULL AS VARCHAR(20)) ROUTERS_CODE_6,
          CAST(NULL AS VARCHAR(20)) ROUTERS_CODE_7,
          CAST(NULL AS INT) COUNTRY_CODE_NUMBER,
          CAST(NULL AS VARCHAR(20)) ROUTERS_CODE_8,
          CAST(NULL AS VARCHAR(20)) ROUTERS_CODE_9,
          CAST(NULL AS VARCHAR(20)) ROUTERS_CODE_10,
          CAST(NULL AS VARCHAR(20)) ROUTERS_CODE_11,
          CAST(NULL AS VARCHAR(20)) ROUTERS_CODE_12,
          CAST(NULL AS VARCHAR(20)) ROUTERS_CODE_13,
          CAST(NULL AS VARCHAR(20)) ROUTERS_CODE_14,
          CAST(NULL AS VARCHAR(20)) ROUTERS_CODE_15
          FROM  @BICCODES_TABLE 


      OPEN BICCODETMPCURSOR 

      FETCH NEXT FROM BICCODETMPCURSOR INTO @MODIFICATION_FLAG,@BANK_CODE,@COUNTRY_CODE,@CORRESPONDENT_BRANCH_CODE,@BANK_NAME,@CORRESPONDENT_BRANCH_NAME,@COUNTRY_NAME,@CITY_NAME,
                                            @ORIGINAL_COUNTRY_CODE ,@OUR_ACCOUNT_NO,@SECRETARY_GUARANTEE_FLAG ,@COUNTRY_RISK,@ADDRESS ,@AUTHENTICATION_FLAG ,@LAST_UPDATING_CHANNEL_CODE,
                                            @LAST_UPDATING_TRAN_CODE,@LAST_UPDATING_USER_CODE ,@LAST_UPDATE_DATE,@RECORD_STATUS,@ROUTERS_CODE_1,@ROUTERS_CODE_2,@ROUTERS_CODE_3,@ROUTERS_CODE_4,
                                            @ROUTERS_CODE_5,@ROUTERS_CODE_6,@ROUTERS_CODE_7,@COUNTRY_CODE_NUMBER,@ROUTERS_CODE_8,@ROUTERS_CODE_9,@ROUTERS_CODE_10 ,@ROUTERS_CODE_11 ,@ROUTERS_CODE_12 ,
                                            @ROUTERS_CODE_13 ,@ROUTERS_CODE_14 ,@ROUTERS_CODE_15

          EXEC TRE.GENERAL_LOG_INSERT 'BATCH','COR.INSERT_BIC_CODES_TEST','GIRDI',''

      WHILE @@FETCH_STATUS = 0 
        BEGIN 
            IF EXISTS(SELECT TOP 1 * FROM TRE.CORRESPONDENT_BANK_DEFINITION WITH (NOLOCK) WHERE  BANK_CODE = @BANK_CODE AND COUNTRY_CODE = @COUNTRY_CODE AND  CORRESPONDENT_BRANCH_CODE = @CORRESPONDENT_BRANCH_CODE)
                BEGIN

                    UPDATE TRE.CORRESPONDENT_BANK_DEFINITION 
                    SET    
                           BANK_CODE = @BANK_CODE, 
                           COUNTRY_CODE = @COUNTRY_CODE,
                           CORRESPONDENT_BRANCH_CODE = @CORRESPONDENT_BRANCH_CODE, 
                           BANK_NAME = @BANK_NAME, 
                           CORRESPONDENT_BRANCH_NAME = @CORRESPONDENT_BRANCH_NAME, 
                           COUNTRY_NAME = @COUNTRY_NAME, 
                           CITY_NAME = @CITY_NAME, 
                           ORIGINAL_COUNTRY_CODE = @ORIGINAL_COUNTRY_CODE, 
                           OUR_ACCOUNT_NO = @OUR_ACCOUNT_NO, 
                           SECRETARY_GUARANTEE_FLAG = @SECRETARY_GUARANTEE_FLAG, 
                           COUNTRY_RISK = @COUNTRY_RISK, 
                           ADDRESS = @ADDRESS,
                           AUTHENTICATION_FLAG = @AUTHENTICATION_FLAG, 
                           LAST_UPDATING_CHANNEL_CODE = @LAST_UPDATING_CHANNEL_CODE, 
                           LAST_UPDATING_TRAN_CODE = @LAST_UPDATING_TRAN_CODE, 
                           LAST_UPDATING_USER_CODE = @LAST_UPDATING_USER_CODE, 
                           LAST_UPDATE_DATE = @LAST_UPDATE_DATE, 
                           RECORD_STATUS = CASE 
                           WHEN @MODIFICATION_FLAG ='A'-- added
                             OR @MODIFICATION_FLAG ='M'-- modified
                             OR @MODIFICATION_FLAG ='U'-- unchanged 
                             THEN 'A'
                             ELSE 'P' -- deleted
                           END
                    WHERE  BANK_CODE= @BANK_CODE 
                    AND    COUNTRY_CODE = @COUNTRY_CODE     
                    AND    CORRESPONDENT_BRANCH_CODE = @CORRESPONDENT_BRANCH_CODE 



                END
            ELSE 
                BEGIN
                    --ILK DEFA KAYIT
                    --XML'de OLAN BIC CODElar BIZIM TABLOLARIMIZDA YOKSA; modification_flag : 'A' , 'M' , 'U'  için record_status = 'A' // modification_flag : 'D' için record_status = 'P' olacak sekilde insert et
                    INSERT INTO TRE.CORRESPONDENT_BANK_DEFINITION 
                            (BANK_CODE, 
                             COUNTRY_CODE, 
                             CORRESPONDENT_BRANCH_CODE, 
                             BANK_NAME, 
                             CORRESPONDENT_BRANCH_NAME, 
                             COUNTRY_NAME, 
                             CITY_NAME, 
                             ORIGINAL_COUNTRY_CODE, 
                             OUR_ACCOUNT_NO, 
                             SECRETARY_GUARANTEE_FLAG, 
                             COUNTRY_RISK, 
                             ADDRESS, 
                             AUTHENTICATION_FLAG, 
                             LAST_UPDATING_CHANNEL_CODE, 
                             LAST_UPDATING_TRAN_CODE, 
                             LAST_UPDATING_USER_CODE, 
                             LAST_UPDATE_DATE, 
                             RECORD_STATUS) 
                VALUES      
                            (@BANK_CODE, 
                             @COUNTRY_CODE, 
                             @CORRESPONDENT_BRANCH_CODE, 
                             @BANK_NAME, 
                             @CORRESPONDENT_BRANCH_NAME, 
                             @COUNTRY_NAME, 
                             @CITY_NAME, 
                             @ORIGINAL_COUNTRY_CODE, 
                             @OUR_ACCOUNT_NO, 
                             @SECRETARY_GUARANTEE_FLAG, 
                             @COUNTRY_RISK, 
                             @ADDRESS, 
                             @AUTHENTICATION_FLAG, 
                             @LAST_UPDATING_CHANNEL_CODE, 
                             @LAST_UPDATING_TRAN_CODE, 
                             @LAST_UPDATING_USER_CODE, 
                             @LAST_UPDATE_DATE, 
                             CASE WHEN
                                @MODIFICATION_FLAG ='A'  -- ADDED
                                OR @MODIFICATION_FLAG ='M' -- MODIFIED  
                                OR @MODIFICATION_FLAG ='U' -- UNCHANGED
                                THEN 'A' 
                                ELSE 'P' --DELETED
                             END)


                    --ISLEME GÖRE OUTPUT MESAJI OLUSTURULUR

                        IF @MODIFICATION_FLAG = 'A'  OR  @MODIFICATION_FLAG = 'M' OR  @MODIFICATION_FLAG = 'U'
                            SET @ADDEDCOUNT = @ADDEDCOUNT + 1

              END 

            FETCH NEXT FROM BICCODETMPCURSOR INTO @MODIFICATION_FLAG,@BANK_CODE,@COUNTRY_CODE,@CORRESPONDENT_BRANCH_CODE,@BANK_NAME,@CORRESPONDENT_BRANCH_NAME,@COUNTRY_NAME,@CITY_NAME,
                                            @ORIGINAL_COUNTRY_CODE ,@OUR_ACCOUNT_NO,@SECRETARY_GUARANTEE_FLAG ,@COUNTRY_RISK,@ADDRESS ,@AUTHENTICATION_FLAG ,@LAST_UPDATING_CHANNEL_CODE,
                                            @LAST_UPDATING_TRAN_CODE,@LAST_UPDATING_USER_CODE ,@LAST_UPDATE_DATE,@RECORD_STATUS,@ROUTERS_CODE_1,@ROUTERS_CODE_2,@ROUTERS_CODE_3,@ROUTERS_CODE_4,
                                            @ROUTERS_CODE_5,@ROUTERS_CODE_6,@ROUTERS_CODE_7,@COUNTRY_CODE_NUMBER,@ROUTERS_CODE_8,@ROUTERS_CODE_9,@ROUTERS_CODE_10 ,@ROUTERS_CODE_11 ,@ROUTERS_CODE_12 ,
                                            @ROUTERS_CODE_13 ,@ROUTERS_CODE_14 ,@ROUTERS_CODE_15
        END
我基本上要做的是比较我的表和XML数据,然后删除、添加或更新。考虑输入是通过类型表的60MB XML。< /P>
ALTER PROCEDURE [COR].[INSERT_BIC_CODES_TEST_V3] 
@BICCODES_TABLE COR.BICCODES_TYPE_TABLE READONLY, 
@ADDED_CODES_COUNT VARCHAR(MAX) -
OUTPUT 
AS 
  BEGIN 
        DECLARE @TRAN VARCHAR(100)
        SELECT @TRAN = CONVERT(VARCHAR(100),@@TRANCOUNT)
        EXEC TRE.GENERAL_LOG_INSERT 'BATCH','COR.INSERT_BIC_CODES_TEST','ILK LOG',''
        EXEC TRE.GENERAL_LOG_INSERT 'BATCH','COR.INSERT_BIC_CODES_TEST',@TRAN,''

          DECLARE @ADDEDCOUNT INT = 0
          DECLARE @UPDATEDCOUNT INT = 0
          DECLARE @DELETEDCOUNT INT = 0

          DECLARE @MODIFICATION_FLAG CHAR(1)
          DECLARE @BANK_CODE CHAR(4) 
          DECLARE @COUNTRY_CODE CHAR(2) 
          DECLARE @CORRESPONDENT_BRANCH_CODE CHAR(5) 
          DECLARE @BANK_NAME VARCHAR(100) 
          DECLARE @CORRESPONDENT_BRANCH_NAME VARCHAR(40) 
          DECLARE @COUNTRY_NAME VARCHAR(50) 
          DECLARE @CITY_NAME VARCHAR(40) 
          DECLARE @ORIGINAL_COUNTRY_CODE CHAR(3) 
          DECLARE @OUR_ACCOUNT_NO INT 
          DECLARE @SECRETARY_GUARANTEE_FLAG CHAR(1) 
          DECLARE @COUNTRY_RISK VARCHAR(10) 
          DECLARE @ADDRESS VARCHAR(80) 
          DECLARE @AUTHENTICATION_FLAG CHAR(1) 
          DECLARE @LAST_UPDATING_CHANNEL_CODE CHAR(10) 
          DECLARE @LAST_UPDATING_TRAN_CODE CHAR(6) 
          DECLARE @LAST_UPDATING_USER_CODE VARCHAR(50) 
          DECLARE @LAST_UPDATE_DATE DATETIME 
          DECLARE @RECORD_STATUS CHAR(1) 
          DECLARE @ROUTERS_CODE_1 VARCHAR(20) 
          DECLARE @ROUTERS_CODE_2 VARCHAR(20) 
          DECLARE @ROUTERS_CODE_3 VARCHAR(20) 
          DECLARE @ROUTERS_CODE_4 VARCHAR(20) 
          DECLARE @ROUTERS_CODE_5 VARCHAR(20) 
          DECLARE @ROUTERS_CODE_6 VARCHAR(20) 
          DECLARE @ROUTERS_CODE_7 VARCHAR(20) 
          DECLARE @COUNTRY_CODE_NUMBER INT 
          DECLARE @ROUTERS_CODE_8 VARCHAR(20) 
          DECLARE @ROUTERS_CODE_9 VARCHAR(20) 
          DECLARE @ROUTERS_CODE_10 VARCHAR(20) 
          DECLARE @ROUTERS_CODE_11 VARCHAR(20) 
          DECLARE @ROUTERS_CODE_12 VARCHAR(20) 
          DECLARE @ROUTERS_CODE_13 VARCHAR(20) 
          DECLARE @ROUTERS_CODE_14 VARCHAR(20) 
          DECLARE @ROUTERS_CODE_15 VARCHAR(20) 

            SELECT 
          MODIFICATION_FLAG=CAST(MODIFICATION_FLAG AS CHAR),
          CAST(SUBSTRING(LTRIM(RTRIM(BIC_CODE)),0, 5) AS CHAR(4)) BANK_CODE,
          CAST(SUBSTRING(LTRIM(RTRIM(BIC_CODE)),5, 2) AS CHAR(2)) COUNTRY_CODE,
          CAST((SUBSTRING(LTRIM(RTRIM(BIC_CODE)),7, 2) + BRANCH_CODE) AS CHAR(5)) CORRESPONDENT_BRANCH_CODE,
          CAST(INSTITUTION_NAME AS VARCHAR(100)) BANK_NAME,
          CAST(BRANCH_INFORMATION AS VARCHAR(40)) CORRESPONDENT_BRANCH_NAME,
          CAST(ISNULL(COUNTRY_NAME,'') AS VARCHAR(50)) COUNTRY_NAME,
          CAST(CITY_HEADING AS VARCHAR(40)) CITY_NAME,
          CAST('' AS CHAR(3))ORIGINAL_COUNTRY_CODE,
          CAST(NULL AS INT)OUR_ACCOUNT_NO,
          CAST('' AS CHAR(1))SECRETARY_GUARANTEE_FLAG,
          CAST(NULL AS VARCHAR(10))COUNTRY_RISK,
          ISNULL(CAST(PHYSICAL_ADDRESS_1 + ' ' + PHYSICAL_ADDRESS_2 + ' ' + PHYSICAL_ADDRESS_3 + ' ' + PHYSICAL_ADDRESS_4 AS VARCHAR(80)),'EMPTY ADRESS') ADDRESS,
          CAST(NULL AS CHAR(1)) AUTHENTICATION_FLAG,
          CAST('XPORT' AS CHAR(10)) LAST_UPDATING_CHANEL_CODE,
          CAST('XPORT' AS CHAR(6)) LAST_UPDATING_TRAN_CODE,
          CAST('XPORT' AS VARCHAR(50)) LAST_UPDATING_USER_CODE,
          GETDATE() LAST_UPDATE_DATE,
          CAST('A' AS VARCHAR(20)) RECORD_STATUS,
          CAST(NULL AS VARCHAR(20)) ROUTERS_CODE_1,
          CAST(NULL AS VARCHAR(20)) ROUTERS_CODE_2,
          CAST(NULL AS VARCHAR(20)) ROUTERS_CODE_3,
          CAST(NULL AS VARCHAR(20)) ROUTERS_CODE_4,
          CAST(NULL AS VARCHAR(20)) ROUTERS_CODE_5,
          CAST(NULL AS VARCHAR(20)) ROUTERS_CODE_6,
          CAST(NULL AS VARCHAR(20)) ROUTERS_CODE_7,
          CAST(NULL AS INT) COUNTRY_CODE_NUMBER,
          CAST(NULL AS VARCHAR(20)) ROUTERS_CODE_8,
          CAST(NULL AS VARCHAR(20)) ROUTERS_CODE_9,
          CAST(NULL AS VARCHAR(20)) ROUTERS_CODE_10,
          CAST(NULL AS VARCHAR(20)) ROUTERS_CODE_11,
          CAST(NULL AS VARCHAR(20)) ROUTERS_CODE_12,
          CAST(NULL AS VARCHAR(20)) ROUTERS_CODE_13,
          CAST(NULL AS VARCHAR(20)) ROUTERS_CODE_14,
          CAST(NULL AS VARCHAR(20)) ROUTERS_CODE_15
          INTO #BICCODES_TABLE2
          FROM  @BICCODES_TABLE 

                     UPDATE F
                    SET    
                           BANK_CODE = T.BANK_CODE, 
                           COUNTRY_CODE =T.COUNTRY_CODE,
                           CORRESPONDENT_BRANCH_CODE = T.CORRESPONDENT_BRANCH_CODE, 
                           BANK_NAME = T.BANK_NAME, 
                           CORRESPONDENT_BRANCH_NAME = T.CORRESPONDENT_BRANCH_NAME, 
                           COUNTRY_NAME = T.COUNTRY_NAME, 
                           CITY_NAME = T.CITY_NAME, 
                           ORIGINAL_COUNTRY_CODE = T.ORIGINAL_COUNTRY_CODE, 
                           OUR_ACCOUNT_NO = T.OUR_ACCOUNT_NO, 
                           SECRETARY_GUARANTEE_FLAG = T.SECRETARY_GUARANTEE_FLAG, 
                           COUNTRY_RISK = T.COUNTRY_RISK, 
                           ADDRESS = T.ADDRESS,
                           AUTHENTICATION_FLAG = T.AUTHENTICATION_FLAG, 
                           LAST_UPDATING_CHANNEL_CODE = T.LAST_UPDATING_CHANEL_CODE, 
                           LAST_UPDATING_TRAN_CODE = T.LAST_UPDATING_TRAN_CODE, 
                           LAST_UPDATING_USER_CODE = T.LAST_UPDATING_USER_CODE, 
                           LAST_UPDATE_DATE = T.LAST_UPDATE_DATE, 
                           RECORD_STATUS = CASE 
                           WHEN T.MODIFICATION_FLAG ='A'-- added
                             OR T.MODIFICATION_FLAG ='M'-- modified
                             OR T.MODIFICATION_FLAG ='U'-- unchanged 
                             THEN 'A'
                             ELSE 'P' -- deleted
                           END
                    FROM TRE.CORRESPONDENT_BANK_DEFINITION F
                    INNER JOIN #BICCODES_TABLE2 T ON( F.BANK_CODE = T.BANK_CODE AND F.COUNTRY_CODE = T.COUNTRY_CODE AND  F.CORRESPONDENT_BRANCH_CODE = T.CORRESPONDENT_BRANCH_CODE)



DECLARE  @MODIFY_COUNT INT=0
SELECT @MODIFY_COUNT= @@ROWCOUNT



     INSERT INTO TRE.CORRESPONDENT_BANK_DEFINITION 
                            (BANK_CODE, 
                             COUNTRY_CODE, 
                             CORRESPONDENT_BRANCH_CODE, 
                             BANK_NAME, 
                             CORRESPONDENT_BRANCH_NAME, 
                             COUNTRY_NAME, 
                             CITY_NAME, 
                             ORIGINAL_COUNTRY_CODE, 
                             OUR_ACCOUNT_NO, 
                             SECRETARY_GUARANTEE_FLAG, 
                             COUNTRY_RISK, 
                             ADDRESS, 
                             AUTHENTICATION_FLAG, 
                             LAST_UPDATING_CHANNEL_CODE, 
                             LAST_UPDATING_TRAN_CODE, 
                             LAST_UPDATING_USER_CODE, 
                             LAST_UPDATE_DATE, 
                             RECORD_STATUS) 
                select      
                            T.BANK_CODE, 
                             T.COUNTRY_CODE, 
                             T.CORRESPONDENT_BRANCH_CODE, 
                             T.BANK_NAME, 
                             T.CORRESPONDENT_BRANCH_NAME, 
                             T.COUNTRY_NAME, 
                             T.CITY_NAME, 
                             T.ORIGINAL_COUNTRY_CODE, 
                             T.OUR_ACCOUNT_NO, 
                             T.SECRETARY_GUARANTEE_FLAG, 
                             T.COUNTRY_RISK, 
                             T.ADDRESS, 
                             T.AUTHENTICATION_FLAG, 
                             T.LAST_UPDATING_CHANEL_CODE, 
                             T.LAST_UPDATING_TRAN_CODE, 
                             T.LAST_UPDATING_USER_CODE, 
                             T.LAST_UPDATE_DATE, 
                             CASE WHEN
                                T.MODIFICATION_FLAG ='A'  -- ADDED
                                OR T.MODIFICATION_FLAG ='M' -- MODIFIED  
                                OR T.MODIFICATION_FLAG ='U' -- UNCHANGED
                                THEN 'A' 
                                ELSE 'P' --DELETED
                             END

                 FROM #BICCODES_TABLE2 T
                 LEFT JOIN TRE.CORRESPONDENT_BANK_DEFINITION F ON( F.BANK_CODE = T.BANK_CODE AND    F.COUNTRY_CODE = T.COUNTRY_CODE AND  F.CORRESPONDENT_BRANCH_CODE = T.CORRESPONDENT_BRANCH_CODE)
                 WHERE F.BANK_CODE IS NULL


DECLARE  @ADDED_COUNT INT=0
SELECT @ADDED_COUNT= @@ROWCOUNT



          SET @ADDED_CODES_COUNT = CONVERT(VARCHAR(100),@ADDED_COUNT) + '%' + CONVERT(VARCHAR(100),@MODIFY_COUNT) + '%' + CONVERT(VARCHAR(100),@DELETEDCOUNT)
          SELECT @ADDED_CODES_COUNT

          EXEC TRE.GENERAL_LOG_INSERT 'BATCH','COR.INSERT_BIC_CODES_TEST','FETCH BITTI',''

          -- tablomuzda pasif olan kayıtları adk tablosundan sil(her ihtimale karşı)
          TRUNCATE TABLE FORTUNA_CONSEPT.PARAMETERS.correspondentbanklist

          INSERT INTO FORTUNA_CONSEPT.PARAMETERS.correspondentbanklist
          SELECT  
          CAST(SUBSTRING(LTRIM(RTRIM(BIC_CODE)),5, 2) AS CHAR(2)) COUNTRY_CODE,
          CAST(SUBSTRING(LTRIM(RTRIM(BIC_CODE)),0, 5) AS CHAR(4)) BANK_CODE,
          CAST(INSTITUTION_NAME AS VARCHAR(100)) BANK_NAME,
          CAST((SUBSTRING(LTRIM(RTRIM(BIC_CODE)),7, 2) + BRANCH_CODE) AS CHAR(5)) CORRESPONDENT_BRANCH_CODE,
          CAST(BRANCH_INFORMATION AS VARCHAR(40)) CORRESPONDENT_BRANCH_NAME
          FROM @BICCODES_TABLE WHERE CAST(MODIFICATION_FLAG AS CHAR) <> 'D'


          UPDATE C SET C.RECORD_STATUS = 'P'
          FROM TRE.CORRESPONDENT_BANK_DEFINITION C WITH (NOLOCK)
          LEFT JOIN FORTUNA_CONSEPT.PARAMETERS.correspondentbanklist F WITH (NOLOCK) ON F.BankCode = C.BANK_CODE 
                                                                      AND F.CountryCode = C.COUNTRY_CODE
                                                                      AND F.BranchCode = C.CORRESPONDENT_BRANCH_CODE
                                                                      WHERE F.BankCode IS NULL

  END 
ALTER PROCEDURE[COR]。[INSERT_BIC_code_TEST_V3]
@BICCODES_表COR.BICCODES_类型_表只读,
@添加了\u代码\u计数VARCHAR(最大值)-
输出
作为
开始
声明@TRAN VARCHAR(100)
选择@TRAN=CONVERT(VARCHAR(100),@@TRANCOUNT)
EXEC TRE.GENERAL\u LOG\u INSERT'BATCH'、'COR.INSERT\u BIC\u CODES\u TEST'、'ILK LOG'、'
EXEC TRE.GENERAL\u LOG\u INSERT'BATCH'、'COR.INSERT\u BIC\u CODES\u TEST'、@TRAN','
声明@AddCount INT=0
声明@UPDATEDCOUNT INT=0
声明@DELETEDCOUNT INT=0
声明@MODIFICATION_标志字符(1)
声明@BANK_代码字符(4)
声明@COUNTRY_代码字符(2)
声明@contractor_BRANCH_代码字符(5)
声明@BANK_NAME VARCHAR(100)
声明@contractor_BRANCH_NAME VARCHAR(40)
声明@COUNTRY_NAME VARCHAR(50)
声明@CITY_NAME VARCHAR(40)
声明@origing_COUNTRY_代码字符(3)
声明@OUR_ACCOUNT_NO INT
声明@秘书\担保\标志字符(1)
声明@COUNTRY_RISK VARCHAR(10)
声明@ADDRESS VARCHAR(80)
声明@AUTHENTICATION_标志字符(1)
声明@LAST\u更新\u通道\u代码字符(10)
声明@LAST\u更新\u传输代码字符(6)
声明@LAST\u更新用户代码VARCHAR(50)
声明@LAST\u UPDATE\u DATETIME
声明@RECORD\u状态字符(1)
声明@ROUTERS\u CODE\u 1 VARCHAR(20)
声明@ROUTERS\u CODE\u 2 VARCHAR(20)
声明@ROUTERS\u CODE\u 3 VARCHAR(20)
声明@ROUTERS\u CODE\u 4 VARCHAR(20)
声明@ROUTERS\u CODE\u 5 VARCHAR(20)
声明@ROUTERS\u CODE\u 6 VARCHAR(20)
声明@ROUTERS\u CODE\u 7 VARCHAR(20)
声明@COUNTRY\u CODE\u NUMBER INT
声明@ROUTERS\u CODE\u 8 VARCHAR(20)
声明@ROUTERS\u CODE\u 9 VARCHAR(20)
声明@ROUTERS\u CODE\u 10 VARCHAR(20)
声明@ROUTERS\u CODE\u 11 VARCHAR(20)
声明@ROUTERS\u CODE\u 12 VARCHAR(20)
声明@ROUTERS\u CODE\u 13 VARCHAR(20)
声明@ROUTERS\u CODE\u 14 VARCHAR(20)
声明@ROUTERS\u CODE\u 15 VARCHAR(20)
挑选
修改标志=强制转换(修改标志为字符),
将子串(LTRIM(RTRIM(BIC_代码)),0,5)转换为字符(4))BANK_代码,
转换(子字符串(LTRIM(RTRIM(BIC_代码)),5,2)为字符(2))国家代码,
将((子字符串(LTRIM(RTRIM(BIC_代码)),7,2)+分支_代码)转换为字符(5))对应的分支_代码,
CAST(机构名称为VARCHAR(100))银行名称,
CAST(分支机构信息为VARCHAR(40))通讯员分支机构名称,
将(ISNULL(COUNTRY_NAME,'')转换为VARCHAR(50))COUNTRY_NAME,
演员(城市标题为VARCHAR(40))城市名称,
将(“”转换为字符(3))原始国家代码,
强制转换(NULL为INT)我们的帐户号,
将(“”转换为字符(1))秘书长,
CAST(空为VARCHAR(10))国家/地区风险,
ISNULL(强制转换(物理地址1+“”+物理地址2+“”+物理地址3+“”+物理地址4为VARCHAR(80)),“空地址”)地址,
强制转换(NULL为字符(1))身份验证\u标志,
将('XPORT'转换为字符(10))最后更新香奈儿代码,
将('XPORT'转换为字符(6))最后更新传输代码,
将('XPORT'转换为VARCHAR(50))最后更新用户代码,
GETDATE()上次更新日期,
将('A'转换为VARCHAR(20))记录状态,
强制转换(NULL为VARCHAR(20))路由器\u代码\u 1,
强制转换(NULL为VARCHAR(20))路由器\u代码\u 2,
强制转换(NULL为VARCHAR(20))路由器\u代码\u 3,
强制转换(NULL为VARCHAR(20))路由器\u代码\u 4,
强制转换(NULL为VARCHAR(20))路由器\u代码\u 5,
强制转换(NULL为VARCHAR(20))路由器\u代码\u 6,
强制转换(NULL为VARCHAR(20))路由器\u代码\u 7,
强制转换(NULL为整数)国家代码,
强制转换(NULL为VARCHAR(20))路由器\u代码\u 8,
强制转换(NULL为VARCHAR(20))路由器\u代码\u 9,
强制转换(NULL为VARCHAR(20))路由器\u代码\u 10,
强制转换(NULL为VARCHAR(20))路由器\u代码\u 11,
强制转换(NULL为VARCHAR(20))路由器\u代码\u 12,
强制转换(NULL为VARCHAR(20))路由器\u代码\u 13,
强制转换(NULL为VARCHAR(20))路由器\u代码\u 14,
强制转换(NULL为VARCHAR(20))路由器\u代码\u 15
进入#BICU表2
从@BICCODES_表
更新F
设置
银行代码=T.银行代码,
国家/地区代码=T.国家/地区代码,
对应分支机构代码=T.对应分支机构代码,
银行名称=T.银行名称,
通讯员分支机构名称=T.通讯员分支机构名称,
国家/地区名称=T.国家/地区名称,
城市名称=T.城市名称,
原始国家代码=T.原始国家代码,
我们的账户号=T。我们的账户号,
秘书长保证标志=T.秘书长保证标志,
国家/地区风险=T.国家/地区风险,
地址=T.地址,
认证标志=T.认证标志,
最后更新