init
This commit is contained in:
@@ -0,0 +1,277 @@
|
||||
-- =============================================
|
||||
-- Description: <Dinamikus import>
|
||||
-- =============================================
|
||||
DROP PROCEDURE IF EXISTS [dbo].[sp_DynamicImport]
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[sp_DynamicImport]
|
||||
@pImportJson NVARCHAR(MAX)
|
||||
,@pIsTorles BIT
|
||||
,@pUserId INT
|
||||
,@pInsertAlways BIT = 0
|
||||
|
||||
AS
|
||||
BEGIN
|
||||
|
||||
-- SET NOCOUNT ON added to prevent extra result sets from interfering with SELECT statements.
|
||||
SET NOCOUNT ON;
|
||||
|
||||
DECLARE
|
||||
@sqlCommand NVARCHAR(MAX) = ''
|
||||
|
||||
,@lastChangedDateTime DATETIME = GETDATE()
|
||||
,@modifierId INT = @pUserId
|
||||
|
||||
,@openJsonWithCommand NVARCHAR(MAX)
|
||||
,@rootElementJsonWithCommand NVARCHAR(300)
|
||||
,@columnNameFromJsonCommand NVARCHAR(300)
|
||||
|
||||
,@columnListForInsert NVARCHAR(MAX)
|
||||
,@columnListForUpdate NVARCHAR(MAX)
|
||||
|
||||
,@sqlInsertCommand NVARCHAR(MAX)
|
||||
,@sqlUpdateCommand NVARCHAR(MAX)
|
||||
,@sqlDeleteCommand NVARCHAR(MAX)
|
||||
|
||||
,@rootElement NVARCHAR(100)
|
||||
,@tableNameFromJson NVARCHAR(50)
|
||||
,@columnCount INT
|
||||
|
||||
,@openJsonPath NVARCHAR(300)
|
||||
|
||||
CREATE TABLE #entityIds
|
||||
(
|
||||
ID INT
|
||||
)
|
||||
|
||||
DECLARE @TableName TABLE
|
||||
(
|
||||
TableName NVARCHAR(50)
|
||||
)
|
||||
|
||||
DECLARE @ColumnTable TABLE
|
||||
(
|
||||
ColumnName NVARCHAR(50)
|
||||
)
|
||||
|
||||
DECLARE @ColumnDataTable TABLE
|
||||
(
|
||||
ColumnName NVARCHAR(50)
|
||||
,ColumnType NVARCHAR(50)
|
||||
,MaxLengthValue NVARCHAR(50)
|
||||
,NumericPrecision NVARCHAR(50)
|
||||
,NumericScale NVARCHAR(50)
|
||||
,IsNullable NVARCHAR(50)
|
||||
)
|
||||
|
||||
-- A Json Root elemének kiszedése változóba @rootElement
|
||||
SELECT
|
||||
@rootElement = [key]
|
||||
FROM
|
||||
OPENJSON(@pImportJson, N'strict $')
|
||||
|
||||
--Az importálandó táblanevének kiszedése JSON-ből (rootelem utáni elem) @tableNameFromJson
|
||||
SET @rootElementJsonWithCommand =
|
||||
'SELECT
|
||||
@tableNameFromJson = [key]
|
||||
FROM
|
||||
OPENJSON(@pImportJson, N''lax $.' + @rootElement + ''')
|
||||
SELECT
|
||||
@tableNameFromJson '
|
||||
|
||||
INSERT INTO @TableName
|
||||
EXEC sp_executesql @rootElementJsonWithCommand, N'@pImportJson NVARCHAR(MAX), @tableNameFromJson NVARCHAR(50)', @pImportJson, @tableNameFromJson
|
||||
|
||||
SELECT @tableNameFromJson = (SELECT TOP 1 TableName FROM @TableName)
|
||||
|
||||
--NOTE: Megvizsgáljuk, hogy létezik-e a tábla neve a Json-ben
|
||||
IF (@tableNameFromJson IS NOT NULL)
|
||||
BEGIN
|
||||
|
||||
--Ha Törölnünk is kell akkor azzal kezdünk!
|
||||
IF @pIsTorles = 1
|
||||
BEGIN
|
||||
--DELETE összeállítása (Igazából update mert csak töröltre állít)
|
||||
SET @sqlDeleteCommand =
|
||||
'UPDATE '
|
||||
+ @tableNameFromJson + '
|
||||
SET '
|
||||
+ @tableNameFromJson + '.TOROLT = ''T'', '
|
||||
+ @tableNameFromJson + '.SERIAL = ' + @tableNameFromJson + '.SERIAL + 1, '
|
||||
+ @tableNameFromJson + '.LASTCHANGED = ''' + CONVERT(NVARCHAR(32), @lastChangedDateTime, 126) + ''', '
|
||||
+ @tableNameFromJson + '.MODIFIER = ''' + CONVERT(NVARCHAR(32), @modifierId) + '''
|
||||
WHERE '
|
||||
+ @tableNameFromJson + '.TOROLT = ''F''
|
||||
AND ' + @tableNameFromJson + '.C_IMPORTALT = ''T'' '
|
||||
|
||||
SET @sqlCommand = @sqlDeleteCommand + @sqlCommand
|
||||
END
|
||||
|
||||
--Oszlopok nevei a Json-ben
|
||||
SET @columnNameFromJsonCommand =
|
||||
'SELECT
|
||||
[key] ColumnNameList
|
||||
INTO
|
||||
#ColumnList
|
||||
FROM
|
||||
OPENJSON(@pImportJson, N''lax $.' + @rootElement + '.' + @tableNameFromJson + '[0]'')
|
||||
SELECT * FROM #ColumnList'
|
||||
|
||||
INSERT INTO @ColumnTable
|
||||
EXEC sp_executesql @columnNameFromJsonCommand, N'@pImportJson NVARCHAR(MAX)', @pImportJson
|
||||
|
||||
SELECT @columnCount = (SELECT COUNT(*) FROM @ColumnTable)
|
||||
|
||||
--NOTE: Megvizsgáljuk, hogy van-e oszlop a Json-ben
|
||||
IF (@columnCount <> 0)
|
||||
BEGIN
|
||||
|
||||
INSERT INTO
|
||||
@ColumnDataTable
|
||||
SELECT
|
||||
COLUMN_NAME
|
||||
,DATA_TYPE
|
||||
,CHARACTER_MAXIMUM_LENGTH
|
||||
,NUMERIC_PRECISION
|
||||
,NUMERIC_SCALE
|
||||
,IS_NULLABLE
|
||||
FROM
|
||||
INFORMATION_SCHEMA.columns
|
||||
WHERE
|
||||
TABLE_NAME = @tableNameFromJson
|
||||
AND TABLE_SCHEMA = 'dbo'
|
||||
AND COLUMN_NAME IN (SELECT ColumnName FROM @ColumnTable)
|
||||
|
||||
SELECT @openJsonWithCommand =
|
||||
ISNULL(@openJsonWithCommand + CHAR(13) + CHAR(10) + CHAR(9) + ',', CHAR(9) + SPACE(1) + '')
|
||||
+ '[' + ColumnName + '] ' + ColumnType
|
||||
+ CASE
|
||||
WHEN ColumnType IN ('DECIMAL', 'NUMERIC')
|
||||
THEN ISNULL('(' + CONVERT(VARCHAR(2), NumericPrecision) + ', ' + CONVERT(VARCHAR(2), NumericScale) + ') ', ' ')
|
||||
WHEN ColumnType IN ('NVARCHAR', 'VARCHAR', 'NCHAR', 'CHAR')
|
||||
THEN ISNULL('(' + CONVERT(VARCHAR(4), IIF(MaxLengthValue = -1, 'MAX', MaxLengthValue)) + ') ', ' ')
|
||||
ELSE
|
||||
' '
|
||||
END
|
||||
+ '''$.' + ColumnName + ''''
|
||||
FROM @ColumnDataTable
|
||||
|
||||
SET @openJsonWithCommand = '(' + CHAR(13) + CHAR(10) + @openJsonWithCommand + CHAR(13) + CHAR(10) + ')'
|
||||
|
||||
--OSZLOPLISTA INSERTHEZ
|
||||
SELECT
|
||||
@columnListForInsert = ISNULL(@columnListForInsert + ', ', '') + '[' + columnDataTable.ColumnName + ']' --TODO andrejkovicse: Függvény a []-ra
|
||||
FROM
|
||||
@ColumnDataTable columnDataTable
|
||||
WHERE
|
||||
columnDataTable.ColumnName <> 'ID' OR @pInsertAlways = 1
|
||||
|
||||
--OSZLOPLISTA UPDATHEZ
|
||||
SELECT
|
||||
@columnListForUpdate = ISNULL(@columnListForUpdate + ', ', '') + '[' + @tableNameFromJson + '].' + '[' + columnDataTable.ColumnName + '] = [ImportData].' + '[' + columnDataTable.ColumnName + ']'
|
||||
FROM
|
||||
@ColumnDataTable columnDataTable
|
||||
WHERE
|
||||
columnDataTable.ColumnName NOT IN ('ID', 'SERIAL', 'CREATOR', 'CREATED', 'C_IMPORTALT')
|
||||
|
||||
-- OPENJSON path beállítása (ez megegyezik mindhárom műveletnél)
|
||||
SET @openJsonPath = N'''strict $.' + @rootElement + '.' + @tableNameFromJson + ''''
|
||||
|
||||
--INSERT összeállítása
|
||||
SET @sqlInsertCommand =
|
||||
'INSERT INTO '
|
||||
+ @tableNameFromJson + '(' + @columnListForInsert + ')
|
||||
OUTPUT INSERTED.ID
|
||||
INTO #entityIds
|
||||
SELECT '
|
||||
+ @columnListForInsert + '
|
||||
FROM
|
||||
OPENJSON(@pImportJson, ' + @openJsonPath + ')
|
||||
WITH '
|
||||
+ @openJsonWithCommand
|
||||
--TODO szikoraz: Nem jó a @pInsertAlways elnevezés, mert ez csak az altábláknál működik és csak akkor ha mind új elem. Update-nl elszáll. JAVÍTANI!!!
|
||||
IF(@pInsertAlways = 0)
|
||||
BEGIN
|
||||
SET @sqlInsertCommand = @sqlInsertCommand + '
|
||||
WHERE
|
||||
ID IS NULL '
|
||||
END
|
||||
|
||||
IF(@pInsertAlways = 0)
|
||||
BEGIN
|
||||
--UPDATE összeállítása
|
||||
SET @sqlUpdateCommand =
|
||||
'UPDATE '
|
||||
+ @tableNameFromJson + '
|
||||
SET '
|
||||
+ @columnListForUpdate + ', '
|
||||
+ @tableNameFromJson + '.SERIAL = ' + @tableNameFromJson + '.SERIAL + 1 ' + '
|
||||
OUTPUT DELETED.ID
|
||||
INTO #entityIds
|
||||
FROM
|
||||
(SELECT *
|
||||
FROM
|
||||
OPENJSON(@pImportJson, ' + @openJsonPath + ')
|
||||
WITH '
|
||||
+ @openJsonWithCommand + '
|
||||
WHERE
|
||||
ID IS NOT NULL) AS ImportData
|
||||
WHERE ' +
|
||||
@tableNameFromJson + '.ID = ImportData.ID '
|
||||
END
|
||||
|
||||
IF(@sqlUpdateCommand IS NULL OR @sqlUpdateCommand = '')
|
||||
BEGIN
|
||||
SET @sqlCommand = @sqlCommand + @sqlInsertCommand
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
SET @sqlCommand = @sqlCommand + @sqlInsertCommand + @sqlUpdateCommand
|
||||
END
|
||||
END
|
||||
|
||||
IF(@sqlCommand IS NOT NULL OR @sqlCommand <> '')
|
||||
BEGIN
|
||||
EXEC sp_executesql @sqlCommand, N'@pImportJson NVARCHAR(MAX)', @pImportJson
|
||||
IF @tableNameFromJson IN ('T_TEREM_OSSZES','T_ESZKOZ_OSSZES') BEGIN
|
||||
DECLARE @entityId int
|
||||
,@entityTanevId int
|
||||
,@intezmenyId int
|
||||
,@kovTanevId int
|
||||
DECLARE @sql nvarchar(400)='SELECT TOP 1 @entityTanevId=C_TANEVID FROM '+@tableNameFromJson+' WHERE ID = '+(SELECT TOP 1 CAST(ID AS varchar(9)) FROM #entityIds)
|
||||
EXEC sp_executesql @sql,N'@entityTanevId int output',@entityTanevId=@entityTanevId output
|
||||
SELECT @intezmenyId=C_INTEZMENYID FROM T_TANEV WHERE ID = @entityTanevId
|
||||
SELECT @kovTanevId=ID FROM T_TANEV_OSSZES WHERE C_INTEZMENYID=@intezmenyId AND C_KOVETKEZO='T' AND TOROLT='F'
|
||||
IF @entityTanevId <> @kovTanevId AND @kovTanevId IS NOT NULL
|
||||
BEGIN
|
||||
DECLARE entityCur CURSOR FOR
|
||||
SELECT ID FROM #entityIds
|
||||
OPEN entityCUr
|
||||
FETCH NEXT FROM entityCUr
|
||||
INTO @entityId
|
||||
WHILE @@FETCH_STATUS=0
|
||||
BEGIN
|
||||
IF @tableNameFromJson='T_TEREM_OSSZES' BEGIN
|
||||
EXEC sp_FollowUpTerem
|
||||
@intezmenyId = @intezmenyId
|
||||
,@aktTanevId = @entityTanevId
|
||||
,@kovetkezoTanevId = @kovTanevId
|
||||
,@teremId = @entityId
|
||||
END
|
||||
ELSE IF @tableNameFromJson = 'T_ESZKOZ_OSSZES' BEGIN
|
||||
EXEC sp_FollowUpEszkoz
|
||||
@intezmenyId = @intezmenyId
|
||||
,@aktTanevId = @entityTanevId
|
||||
,@kovetkezoTanevId = @kovTanevId
|
||||
,@eszkozId = @entityId
|
||||
END
|
||||
FETCH NEXT FROM entityCur INTO @entityId
|
||||
END
|
||||
CLOSE entityCur
|
||||
DEALLOCATE entityCur
|
||||
END
|
||||
END
|
||||
END
|
||||
END
|
||||
END
|
||||
GO
|
@@ -0,0 +1,339 @@
|
||||
-- =============================================
|
||||
-- Description: <>
|
||||
-- =============================================
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
DROP PROCEDURE IF EXISTS [dbo].[uspTanuloKifirImport]
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[uspTanuloKifirImport]
|
||||
@pImportJson NVARCHAR(MAX)
|
||||
,@pIsTorles BIT
|
||||
,@pUserId INT
|
||||
,@pTanevId INT
|
||||
,@pIntezmenyId INT
|
||||
|
||||
AS
|
||||
BEGIN
|
||||
|
||||
SET NOCOUNT ON;
|
||||
|
||||
DECLARE
|
||||
@tableNameList NVARCHAR(2000) = 'T_FELHASZNALO_OSSZES'
|
||||
,@actualJson NVARCHAR(MAX) = ''
|
||||
|
||||
,@lastChangedDateTime DATETIME = GETDATE()
|
||||
,@modifierId INT = @pUserId
|
||||
|
||||
--Ha törölnünk vagy módosítanunk is kell akkor azzal kezdünk!
|
||||
IF (@pIsTorles = 1)
|
||||
BEGIN
|
||||
--TODO szikoraz:
|
||||
PRINT 'need to implement!!!'
|
||||
END
|
||||
|
||||
EXECUTE [dbo].[sp_DynamicImportJsonSplit] @pImportJson = @pImportJson , @pIsTorles = @pIsTorles, @pUserId = @pUserId, @pInsertAlways = 0, @pTableNameList = @tableNameList
|
||||
|
||||
--Tanulók beszúrása
|
||||
SET @actualJson = ' { "ImportJson":{ "T_TANULO_OSSZES":' +
|
||||
(SELECT
|
||||
Tanulo.FelhasznaloId ID
|
||||
,Tanulo. C_TANTERVID
|
||||
|
||||
,Tanulo. C_ALLAMIGONDOZOTT
|
||||
,Tanulo. C_BEILLESZKEDESINEHEZSEG
|
||||
,Tanulo. C_BEJARO
|
||||
,Tanulo. C_EVISMETLO
|
||||
,Tanulo. C_JOGVISZONYATSZUNETELTETO
|
||||
,Tanulo. C_MAGANTANULO
|
||||
,Tanulo. C_POLGARISZERZODESES
|
||||
,Tanulo. C_SZAKMAIGYAKORLATON
|
||||
,Tanulo. C_SZOCIALISTAMOGATAS
|
||||
,Tanulo. C_TANDIJATFIZETO
|
||||
,Tanulo. C_TANKOTELEZETT
|
||||
,Tanulo. C_TANULOSZERZODESES
|
||||
,Tanulo. C_TERITESIDIJATFIZETO
|
||||
,Tanulo. C_TESTNEVELESTIPUSA
|
||||
,Tanulo. C_VENDEG
|
||||
,Tanulo. C_BTMPROBLEMAS
|
||||
,Tanulo. C_DIAKSPORTKOROS
|
||||
,Tanulo. C_HALMOZOTTANFOGYATEKOS
|
||||
,Tanulo. C_KOLLEGIUMIELLATASOS
|
||||
,Tanulo. C_SAJATOSNEVELESU
|
||||
,Tanulo. C_VESZELYEZTETETT
|
||||
,Tanulo. C_BEILLESZKEDESIPROBLEMAVALKUZ
|
||||
,Tanulo. C_MAGATARTASIPROBLEMAVALKUZD
|
||||
,Tanulo. C_TANULASIPROBLEMADISZGRAFIA
|
||||
,Tanulo. C_TANULASIPROBLEMAVALKUZD
|
||||
,Tanulo. C_TANULASIPROBLEMAVALKUZDDISZK
|
||||
,Tanulo. C_TANULASIPROBLEMAVALKUZDDISZL
|
||||
,Tanulo. C_KOZEPFOKUOKTATASBATIZENHATOD
|
||||
,Tanulo. C_MENEDEKJOGGALRENDELKEZO
|
||||
,Tanulo. C_EGYEBDONTO
|
||||
,Tanulo. C_MEGALLAPODASOS
|
||||
,Tanulo. C_OSZTV
|
||||
,Tanulo. C_SZETVAGAZAT
|
||||
,Tanulo. C_SZKTV
|
||||
,Tanulo. C_TECHNIKUSIEVFOLYAM
|
||||
,Tanulo. C_EGYUTTMUKODESES
|
||||
,Tanulo. C_ISKOLAIKERETEKKOZOTT
|
||||
,Tanulo. C_ISSZAKMAIGYAKORLATHIANY
|
||||
,Tanulo. C_ISKIFIRIMPORTALT
|
||||
,Tanulo. C_FELVETELTANEVEID
|
||||
|
||||
,Tanulo. C_ALINTEZMENYID
|
||||
,Tanulo. C_ALTANEVID
|
||||
,Tanulo. TOROLT
|
||||
,Tanulo. SERIAL
|
||||
,Tanulo. LASTCHANGED
|
||||
,Tanulo. CREATED
|
||||
,Tanulo. MODIFIER
|
||||
,Tanulo. CREATOR
|
||||
,Tanulo. ELOZOTANEVIREKORDID
|
||||
,Tanulo. NNID
|
||||
FROM
|
||||
(SELECT
|
||||
TanuloJsonData.*
|
||||
,Felhasznalo.ID FelhasznaloId
|
||||
|
||||
FROM OPENJSON(@pImportJson, N'lax $.ImportJson.T_TANULO_OSSZES')
|
||||
WITH (
|
||||
ID INT '$.ID'
|
||||
,C_TANTERVID INT '$.C_TANTERVID'
|
||||
,C_ALLAMIGONDOZOTT CHAR(1) '$.C_ALLAMIGONDOZOTT'
|
||||
,C_BEILLESZKEDESINEHEZSEG CHAR(1) '$.C_BEILLESZKEDESINEHEZSEG'
|
||||
,C_BEJARO CHAR(1) '$.C_BEJARO'
|
||||
,C_EVISMETLO CHAR(1) '$.C_EVISMETLO'
|
||||
,C_JOGVISZONYATSZUNETELTETO CHAR(1) '$.C_JOGVISZONYATSZUNETELTETO'
|
||||
,C_MAGANTANULO CHAR(1) '$.C_MAGANTANULO'
|
||||
,C_POLGARISZERZODESES CHAR(1) '$.C_POLGARISZERZODESES'
|
||||
,C_SZAKMAIGYAKORLATON CHAR(1) '$.C_SZAKMAIGYAKORLATON'
|
||||
,C_SZOCIALISTAMOGATAS CHAR(1) '$.C_SZOCIALISTAMOGATAS'
|
||||
,C_TANDIJATFIZETO CHAR(1) '$.C_TANDIJATFIZETO'
|
||||
,C_TANKOTELEZETT CHAR(1) '$.C_TANKOTELEZETT'
|
||||
,C_TANULOSZERZODESES CHAR(1) '$.C_TANULOSZERZODESES'
|
||||
,C_TERITESIDIJATFIZETO CHAR(1) '$.C_TERITESIDIJATFIZETO'
|
||||
,C_TESTNEVELESTIPUSA INT '$.C_TESTNEVELESTIPUSA'
|
||||
,C_VENDEG CHAR(1) '$.C_VENDEG'
|
||||
,C_BTMPROBLEMAS CHAR(1) '$.C_BTMPROBLEMAS'
|
||||
,C_DIAKSPORTKOROS CHAR(1) '$.C_DIAKSPORTKOROS'
|
||||
,C_HALMOZOTTANFOGYATEKOS CHAR(1) '$.C_HALMOZOTTANFOGYATEKOS'
|
||||
,C_KOLLEGIUMIELLATASOS CHAR(1) '$.C_KOLLEGIUMIELLATASOS'
|
||||
,C_SAJATOSNEVELESU CHAR(1) '$.C_SAJATOSNEVELESU'
|
||||
,C_VESZELYEZTETETT CHAR(1) '$.C_VESZELYEZTETETT'
|
||||
,C_BEILLESZKEDESIPROBLEMAVALKUZ CHAR(1) '$.C_BEILLESZKEDESIPROBLEMAVALKUZ'
|
||||
,C_MAGATARTASIPROBLEMAVALKUZD CHAR(1) '$.C_MAGATARTASIPROBLEMAVALKUZD'
|
||||
,C_TANULASIPROBLEMADISZGRAFIA CHAR(1) '$.C_TANULASIPROBLEMADISZGRAFIA'
|
||||
,C_TANULASIPROBLEMAVALKUZD CHAR(1) '$.C_TANULASIPROBLEMAVALKUZD'
|
||||
,C_TANULASIPROBLEMAVALKUZDDISZK CHAR(1) '$.C_TANULASIPROBLEMAVALKUZDDISZK'
|
||||
,C_TANULASIPROBLEMAVALKUZDDISZL CHAR(1) '$.C_TANULASIPROBLEMAVALKUZDDISZL'
|
||||
,C_KOZEPFOKUOKTATASBATIZENHATOD CHAR(1) '$.C_KOZEPFOKUOKTATASBATIZENHATOD'
|
||||
,C_MENEDEKJOGGALRENDELKEZO CHAR(1) '$.C_MENEDEKJOGGALRENDELKEZO'
|
||||
,C_EGYEBDONTO CHAR(1) '$.C_EGYEBDONTO'
|
||||
,C_MEGALLAPODASOS CHAR(1) '$.C_MEGALLAPODASOS'
|
||||
,C_OSZTV CHAR(1) '$.C_OSZTV'
|
||||
,C_SZETVAGAZAT CHAR(1) '$.C_SZETVAGAZAT'
|
||||
,C_SZKTV CHAR(1) '$.C_SZKTV'
|
||||
,C_TECHNIKUSIEVFOLYAM CHAR(1) '$.C_TECHNIKUSIEVFOLYAM'
|
||||
,C_EGYUTTMUKODESES CHAR(1) '$.C_EGYUTTMUKODESES'
|
||||
,C_ISKOLAIKERETEKKOZOTT CHAR(1) '$.C_ISKOLAIKERETEKKOZOTT'
|
||||
,C_ISSZAKMAIGYAKORLATHIANY CHAR(1) '$.C_ISSZAKMAIGYAKORLATHIANY'
|
||||
,C_ISKIFIRIMPORTALT CHAR(1) '$.C_ISKIFIRIMPORTALT'
|
||||
,C_FELVETELTANEVEID INT '$.C_FELVETELTANEVEID'
|
||||
|
||||
,C_ALINTEZMENYID INT '$.C_INTEZMENYID'
|
||||
,C_ALTANEVID INT '$.C_TANEVID'
|
||||
,TOROLT CHAR(1) '$.TOROLT'
|
||||
,SERIAL INT '$.SERIAL'
|
||||
,LASTCHANGED DATETIME '$.LASTCHANGED'
|
||||
,CREATED DATETIME '$.CREATED'
|
||||
,MODIFIER INT '$.MODIFIER'
|
||||
,CREATOR INT '$.CREATOR'
|
||||
,ELOZOTANEVIREKORDID INT '$.ELOZOTANEVIREKORDID'
|
||||
,NNID INT '$.NNID'
|
||||
|
||||
,Vezeteknev NVARCHAR(255) '$.Vezeteknev'
|
||||
,Keresztnev NVARCHAR(255) '$.Keresztnev'
|
||||
,SzuletesiHely NVARCHAR(50) '$.SzuletesiHely'
|
||||
,SzuletesiIdo DATETIME '$.SzuletesiIdo'
|
||||
,OktatasiAzonosito NVARCHAR(20) '$.OktatasiAzonosito'
|
||||
) TanuloJsonData
|
||||
LEFT JOIN
|
||||
T_FELHASZNALO_OSSZES Felhasznalo ON
|
||||
--NOTE: A leküldött adat már teljesen jól formázott, de a db-ben lehetnek rossz adatok. Az összehasonlításhoz ezt csináljuk:
|
||||
-- Kisbetűsítjük -> Lecseréljük a NO BREAK SPACE-eket, SPACE-ekre -> Lecseréljük az összes többszörös szóközt egyre -> Trimmelünk
|
||||
LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(Felhasznalo.C_VEZETEKNEV),CHAR(160),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) = LOWER(TanuloJsonData.Vezeteknev)
|
||||
AND LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(Felhasznalo.C_UTONEV),CHAR(160),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) = LOWER(TanuloJsonData.Keresztnev)
|
||||
AND LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(Felhasznalo.C_SZULETESIHELY),CHAR(160),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) = LOWER(TanuloJsonData.SzuletesiHely)
|
||||
AND Felhasznalo.C_SZULETESIDATUM = TanuloJsonData.SzuletesiIdo
|
||||
AND Felhasznalo.C_OKTATASIAZONOSITO = TanuloJsonData.OktatasiAzonosito
|
||||
AND Felhasznalo.C_INTEZMENYID = @pIntezmenyId
|
||||
AND Felhasznalo.C_TANEVID = @pTanevId
|
||||
AND Felhasznalo.TOROLT = 'F'
|
||||
AND TanuloJsonData.ID IS NULL
|
||||
) AS Tanulo
|
||||
FOR JSON PATH,INCLUDE_NULL_VALUES)
|
||||
|
||||
SET @actualJson = @actualJson + ' } }'
|
||||
|
||||
--NOTE: A törlés itt azért false, mert a T_TANULO_OSSZES view-ból korábban elvégeztük a törlést.
|
||||
EXECUTE [dbo].[sp_DynamicImport] @pImportJson = @actualJson , @pIsTorles = 0, @pUserId = @pUserId, @pInsertAlways = 1
|
||||
|
||||
--Címek beszúrása
|
||||
SET @actualJson = ' { "ImportJson":{ "T_CIM_OSSZES":' +
|
||||
(SELECT
|
||||
Cim. ID
|
||||
,Cim. C_CIMTIPUSA
|
||||
,Cim. C_IRANYITOSZAM
|
||||
,Cim. C_VAROS
|
||||
,Cim. C_KOZTERULET
|
||||
,Cim. C_KOZTERULETJELLEGE
|
||||
,Cim. C_HAZSZAM
|
||||
,Cim. C_ORSZAG
|
||||
,Cim. C_ALAPERTELMEZETT
|
||||
,Cim. C_EMELET
|
||||
,Cim. C_AJTO
|
||||
,Cim.FelhasznaloId C_FELHASZNALOID
|
||||
|
||||
,Cim. C_INTEZMENYID
|
||||
,Cim. C_TANEVID
|
||||
,Cim. TOROLT
|
||||
,Cim. SERIAL
|
||||
,Cim. LASTCHANGED
|
||||
,Cim. CREATED
|
||||
,Cim. MODIFIER
|
||||
,Cim. CREATOR
|
||||
,Cim. ELOZOTANEVIREKORDID
|
||||
,Cim. NNID
|
||||
FROM
|
||||
(SELECT
|
||||
CimJsonData.*
|
||||
,Felhasznalo.ID FelhasznaloId
|
||||
FROM OPENJSON(@pImportJson, N'lax $.ImportJson.T_CIM_OSSZES')
|
||||
WITH (
|
||||
ID INT '$.ID'
|
||||
,C_CIMTIPUSA INT '$.C_CIMTIPUSA'
|
||||
,C_IRANYITOSZAM NVARCHAR(20) '$.C_IRANYITOSZAM'
|
||||
,C_VAROS NVARCHAR(50) '$.C_VAROS'
|
||||
,C_KOZTERULET NVARCHAR(40) '$.C_KOZTERULET'
|
||||
,C_KOZTERULETJELLEGE INT '$.C_KOZTERULETJELLEGE'
|
||||
,C_HAZSZAM NVARCHAR(30) '$.C_HAZSZAM'
|
||||
,C_ORSZAG INT '$.C_ORSZAG'
|
||||
,C_ALAPERTELMEZETT CHAR(1) '$.C_ALAPERTELMEZETT'
|
||||
,C_EMELET NVARCHAR(40) '$.C_EMELET'
|
||||
,C_AJTO NVARCHAR(30) '$.C_AJTO'
|
||||
|
||||
,C_INTEZMENYID INT '$.C_INTEZMENYID'
|
||||
,C_TANEVID INT '$.C_TANEVID'
|
||||
,TOROLT CHAR(1) '$.TOROLT'
|
||||
,SERIAL INT '$.SERIAL'
|
||||
,LASTCHANGED DATETIME '$.LASTCHANGED'
|
||||
,CREATED DATETIME '$.CREATED'
|
||||
,MODIFIER INT '$.MODIFIER'
|
||||
,CREATOR INT '$.CREATOR'
|
||||
,ELOZOTANEVIREKORDID INT '$.ELOZOTANEVIREKORDID'
|
||||
,NNID INT '$.NNID'
|
||||
|
||||
,Vezeteknev NVARCHAR(255) '$.Vezeteknev'
|
||||
,Keresztnev NVARCHAR(255) '$.Keresztnev'
|
||||
,SzuletesiHely NVARCHAR(50) '$.SzuletesiHely'
|
||||
,SzuletesiIdo DATETIME '$.SzuletesiIdo'
|
||||
,OktatasiAzonosito NVARCHAR(20) '$.OktatasiAzonosito'
|
||||
) CimJsonData
|
||||
LEFT JOIN
|
||||
T_FELHASZNALO_OSSZES Felhasznalo ON
|
||||
--NOTE: A leküldött adat már teljesen jól formázott, de a db-ben lehetnek rossz adatok. Az összehasonlításhoz ezt csináljuk:
|
||||
-- Kisbetűsítjük -> Lecseréljük a NO BREAK SPACE-eket, SPACE-ekre -> Lecseréljük az összes többszörös szóközt egyre -> Trimmelünk
|
||||
LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(Felhasznalo.C_VEZETEKNEV),CHAR(160),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) = LOWER(CimJsonData.Vezeteknev)
|
||||
AND LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(Felhasznalo.C_UTONEV),CHAR(160),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) = LOWER(CimJsonData.Keresztnev)
|
||||
AND LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(Felhasznalo.C_SZULETESIHELY),CHAR(160),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) = LOWER(CimJsonData.SzuletesiHely)
|
||||
AND Felhasznalo.C_SZULETESIDATUM = CimJsonData.SzuletesiIdo
|
||||
AND Felhasznalo.C_OKTATASIAZONOSITO = CimJsonData.OktatasiAzonosito
|
||||
AND Felhasznalo.C_INTEZMENYID = @pIntezmenyId
|
||||
AND Felhasznalo.C_TANEVID = @pTanevId
|
||||
AND Felhasznalo.TOROLT = 'F'
|
||||
) AS Cim
|
||||
FOR JSON PATH,INCLUDE_NULL_VALUES)
|
||||
|
||||
SET @actualJson = @actualJson + ' } }'
|
||||
|
||||
--NOTE: A törlés itt azért false, mert a T_CIM_OSSZES view-ból korábban elvégeztük a törlést.
|
||||
EXECUTE [dbo].[sp_DynamicImport] @pImportJson = @actualJson , @pIsTorles = 0, @pUserId = @pUserId, @pInsertAlways = 0
|
||||
|
||||
--Emailek beszúrása
|
||||
SET @actualJson = ' { "ImportJson":{ "T_EMAIL_OSSZES":' +
|
||||
(SELECT
|
||||
Email. ID
|
||||
,Email. C_EMAILTIPUSA
|
||||
,Email. C_EMAILCIM
|
||||
,Email. C_ALAPERTELMEZETT
|
||||
,Email. C_ISPUBLIC
|
||||
,Email.FelhasznaloId C_FELHASZNALOID
|
||||
|
||||
,Email. C_INTEZMENYID
|
||||
,Email. C_TANEVID
|
||||
,Email. TOROLT
|
||||
,Email. SERIAL
|
||||
,Email. LASTCHANGED
|
||||
,Email. CREATED
|
||||
,Email. MODIFIER
|
||||
,Email. CREATOR
|
||||
,Email. ELOZOTANEVIREKORDID
|
||||
,Email. NNID
|
||||
FROM
|
||||
(SELECT
|
||||
EmailJsonData.*
|
||||
,Felhasznalo.ID FelhasznaloId
|
||||
FROM OPENJSON(@pImportJson, N'lax $.ImportJson.T_EMAIL_OSSZES')
|
||||
WITH (
|
||||
ID INT '$.ID'
|
||||
,C_EMAILTIPUSA INT '$.C_EMAILTIPUSA'
|
||||
,C_EMAILCIM NVARCHAR(200) '$.C_EMAILCIM'
|
||||
,C_ALAPERTELMEZETT CHAR(1) '$.C_ALAPERTELMEZETT'
|
||||
,C_ISPUBLIC CHAR(1) '$.C_ISPUBLIC'
|
||||
|
||||
,C_INTEZMENYID INT '$.C_INTEZMENYID'
|
||||
,C_TANEVID INT '$.C_TANEVID'
|
||||
,TOROLT CHAR(1) '$.TOROLT'
|
||||
,SERIAL INT '$.SERIAL'
|
||||
,LASTCHANGED DATETIME '$.LASTCHANGED'
|
||||
,CREATED DATETIME '$.CREATED'
|
||||
,MODIFIER INT '$.MODIFIER'
|
||||
,CREATOR INT '$.CREATOR'
|
||||
,ELOZOTANEVIREKORDID INT '$.ELOZOTANEVIREKORDID'
|
||||
,NNID INT '$.NNID'
|
||||
|
||||
,Vezeteknev NVARCHAR(255) '$.Vezeteknev'
|
||||
,Keresztnev NVARCHAR(255) '$.Keresztnev'
|
||||
,SzuletesiHely NVARCHAR(50) '$.SzuletesiHely'
|
||||
,SzuletesiIdo DATETIME '$.SzuletesiIdo'
|
||||
,OktatasiAzonosito NVARCHAR(20) '$.OktatasiAzonosito'
|
||||
) EmailJsonData
|
||||
LEFT JOIN
|
||||
T_FELHASZNALO_OSSZES Felhasznalo ON
|
||||
--NOTE: A leküldött adat már teljesen jól formázott, de a db-ben lehetnek rossz adatok. Az összehasonlításhoz ezt csináljuk:
|
||||
-- Kisbetűsítjük -> Lecseréljük a NO BREAK SPACE-eket, SPACE-ekre -> Lecseréljük az összes többszörös szóközt egyre -> Trimmelünk
|
||||
LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(Felhasznalo.C_VEZETEKNEV),CHAR(160),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) = LOWER(EmailJsonData.Vezeteknev)
|
||||
AND LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(Felhasznalo.C_UTONEV),CHAR(160),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) = LOWER(EmailJsonData.Keresztnev)
|
||||
AND LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(Felhasznalo.C_SZULETESIHELY),CHAR(160),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) = LOWER(EmailJsonData.SzuletesiHely)
|
||||
AND Felhasznalo.C_SZULETESIDATUM = EmailJsonData.SzuletesiIdo
|
||||
AND Felhasznalo.C_OKTATASIAZONOSITO = EmailJsonData.OktatasiAzonosito
|
||||
AND Felhasznalo.C_INTEZMENYID = @pIntezmenyId
|
||||
AND Felhasznalo.C_TANEVID = @pTanevId
|
||||
AND Felhasznalo.TOROLT = 'F'
|
||||
) AS Email
|
||||
FOR JSON PATH,INCLUDE_NULL_VALUES)
|
||||
|
||||
SET @actualJson = @actualJson + ' } }'
|
||||
|
||||
--NOTE: A törlés itt azért false, mert a T_EMAIL_OSSZES view-ból korábban elvégeztük a törlést.
|
||||
EXECUTE [dbo].[sp_DynamicImport] @pImportJson = @actualJson , @pIsTorles = 0, @pUserId = @pUserId, @pInsertAlways = 0
|
||||
|
||||
END
|
||||
|
||||
|
||||
GO
|
||||
|
Reference in New Issue
Block a user