Sql 将主要类型表输入到程序
我试图从后端读取XML数据,并将数据作为typetable传递给过程。当我尝试使用小XML数据(500KB,1000行)时,该过程工作正常。但是,当我将它与60MB XML一起使用时,它永远不会响应,而且在dev数据库上工作的每个人都不能修改过程,服务也永远不会再次响应。我应该如何使用一个大的XML输入作为一个没有性能问题的类型 编辑:它工作了一个星期,但突然就不工作了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
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.认证标志,
最后更新