Add migration for function getNumDoc4NumDocForn
Some checks are pending
IntegryManagementSystem_Multi/pipeline/head Build queued...
Some checks are pending
IntegryManagementSystem_Multi/pipeline/head Build queued...
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
package it.integry.ems.migration.model;
|
||||
|
||||
import it.integry.ems.migration._base.BaseMigration;
|
||||
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||
|
||||
public class Migration_20250915155856 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
|
||||
|
||||
createOrUpdateFunction("getNumDoc4NumDocForn", "-- =============================================\n" +
|
||||
"-- Author: <Author,,Name>\n" +
|
||||
"-- Create date: <Create Date,,>\n" +
|
||||
"-- Description: <Description,,>\n" +
|
||||
"-- =============================================\n" +
|
||||
"CREATE FUNCTION getNumDoc4NumDocForn\n" +
|
||||
"( \n" +
|
||||
" @numdocOrig varchar(60), @annoComp varchar(4)\n" +
|
||||
")\n" +
|
||||
"\n" +
|
||||
"RETURNS @numTable TABLE \n" +
|
||||
"(\n" +
|
||||
" num_doc_orig varchar(max), num_doc int\n" +
|
||||
")\n" +
|
||||
"AS\n" +
|
||||
"BEGIN\n" +
|
||||
" \n" +
|
||||
" declare @sep varchar(5), @numDoc varchar(60), @rowc int\n" +
|
||||
"\n" +
|
||||
" select @numdocOrig = LTRIM(RTRIM(@numdocOrig))\n" +
|
||||
"\n" +
|
||||
" declare @tmpChar table (sep varchar(5));\n" +
|
||||
" declare @splitString table (numOrig varchar(60), numNew varchar(60), is_numeric int);\n" +
|
||||
"\n" +
|
||||
" SET @numdocOrig = REPLACE(@numdocOrig, '-', ',');\n" +
|
||||
" SET @numdocOrig = REPLACE(@numdocOrig, '.', ',');\n" +
|
||||
" SET @numdocOrig = REPLACE(@numdocOrig, ' ', ',');\n" +
|
||||
" SET @numdocOrig = REPLACE(@numdocOrig, '/', ',');\n" +
|
||||
" SET @numdocOrig = REPLACE(@numdocOrig, '\', ',');\n" +
|
||||
" \n" +
|
||||
" ;with tab_p as (\n" +
|
||||
" select value_string as num_new, \n" +
|
||||
" COUNT(*) over (partition by (select 1)) as tot_row, \n" +
|
||||
" ROW_NUMBER() over (order by (select 1)) as id,\n" +
|
||||
" LEN(value_string) as lunghezza\n" +
|
||||
" from dbo.parseStringIntoArray(@numdocOrig, ',')\n" +
|
||||
" where ISNUMERIC(value_string) = 1 )\n" +
|
||||
" \n" +
|
||||
" insert into @numTable\n" +
|
||||
" select @numdocOrig as num_doc_forn, cast(num_new as int ) as num_doc\n" +
|
||||
" from (\n" +
|
||||
" select * from tab_p ) t\n" +
|
||||
" where (tot_row = 1 or (tot_row > 1 AND \n" +
|
||||
" num_new <> cast(@annoComp as varchar) and\n" +
|
||||
" num_new <> cast(right(@annoComp,2) as varchar) )) \n" +
|
||||
" union all\n" +
|
||||
" select @numdocOrig, @numdocOrig\n" +
|
||||
" where not exists (select * from tab_p)\n" +
|
||||
" \n" +
|
||||
" \n" +
|
||||
"\n" +
|
||||
" RETURN \n" +
|
||||
"END");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user