Member 14060936 Ответов: 2

Msg 102, уровень 15, состояние 1, строка 38


ИСПОЛЬЗУЙТЕ [FMSUAT]
ГО
/****** Объект: StoredProcedure [dbo].[sp_Generate_GL_Journals_NEW] дата сценария: 20.11.2018 7:57:47 AM ******/
УСТАНОВИТЕ ANSI_NULLS НА
ГО
УСТАНОВИТЬ QUOTED_IDENTIFIER OFF
ГО

-- =============================================
-- Автор: <Author,,Sean Cudd/Kathy Hurley>
-- Дата создания: <дата создания,, 11/30/2009, 11/15/2018>
-- Описание: <описание,,генерируйте записи журнала PeopleSoft G/L из разнесенных пакетов AS400 G/L,используя рабочую таблицу>
-- =============================================
Изменить процедуру [dbo].[sp_Generate_GL_Journals_NEW]
-- Добавьте параметры для хранимой процедуры здесь
@System char(10),
@Library char(10),
@busUnit char(5),
@acctPeriod int = 0,
@batchNbr int = 0


АС
НАЧАТЬ
LINENO 0
-- Установить параметр nocount на добавленную предотвратить дополнительные результирующие наборы
-- вмешательство в операторы SELECT.
УСТАНОВИТЕ NOCOUNT ON;

Объявить @SchemaPath varchar(50);
Объявить @timestamp varchar(50);
Объявить @GLAcct char(10);
Объявить @IC_Flag varchar(1);
Объявить @Inter_Company varchar(1000);
Объявить @Non_Inter_Company varchar(1000);
Объявить @Is_It_IC varchar(1000);


Установите @SchemaPath = dbo.GetAS400SchemaPath(@System) + @Library;

Набор @IC_Flag = ' ';
SET @GLAcct = ' ';


Набор @типа timestamp = приведение(@acctPeriod как char(6)) + чугун(15 как char(2));

УДАЛИТЬ ИЗ PS_CG_WF_PRIOR_JGN;
Старпома ДБО.система sp_Generate_Pre_JGEN_file @, @библиотека, @busUnit, @acctPeriod, @batchNbr;


--- Следующая вставка предназначена для внекорпоративной партии ----

SET @Non_Inter_Company = "вставить в PS_JGEN_ACCT_ENTRY
(SEQUENCENO,
БИЗНЕС-ЕДИНИЦА,
ИДЕНТИФИКАТОР ТРАНЗАКЦИИ,
LEDGER_GROUP,
ГРОССБУХ,
ACCOUNTING_DT,
APPL_JRNL_ID,
BUSINESS_UNIT_GL,
ФИНАНСОВЫЙ ГОД,
ОТЧЕТНЫЙ ПЕРИОД,
JOURNAL_ID,
JOURNAL_DATE,
JOURNAL_LINE,
СЧЕТ,
ALTACCT,
DEPTID,
ОПЕРАТИВНОЕ ПОДРАЗДЕЛЕНИЕ,
ПРОДУКТ,
FUND_CODE,
CLASS_FLD,
ПРОГРАММНЫЙ КОД,
BUDGET_REF,
ФИЛИАЛ,
AFFILIATE_INTRA1,
AFFILIATE_INTRA2,
CHARTFIELD1,
CHARTFIELD2,
CHARTFIELD3,
PROJECT_ID,
CURRENCY_CD,
STATISTICS_CODE,
ИНОСТРАННАЯ ВАЛЮТА,
RT_TYPE,
RATE_MULT,
RATE_DIV,
ДЕНЕЖНАЯ СУММА,
FOREIGN_AMOUNT,
STATISTIC_AMOUNT,
MOVEMENT_FLAG,
DOC_TYPE,
DOC_SEQ_NBR,
DOC_SEQ_DATE,
JRNL_LN_REF,
LINE_DESCR,
IU_SYS_TRAN_CD,
IU_TRAN_CD,
IU_ANCHOR_FLG,
GL_DISTRIB_STATUS,
ЭКЗЕМПЛЯР ПРОЦЕССА,
DTTM_STAMP)
ВЫБЕРИТЕ ROW_NUMBER() OVER (ORDER BY TRANSACTION_ID) AS SEQUENCENO, * FROM
( ВЫБИРАТЬ
'" + @busUnit + "' как BUSINESS_UNIT,
ИДЕНТИФИКАТОР ТРАНЗАКЦИИ,
"ФАКТИЧЕСКИЕ ДАННЫЕ" КАК LEDGER_GROUP,
"ФАКТИЧЕСКИЕ ДАННЫЕ" КАК ГРОССБУХ,
'" + @timestamp + "' как ACCOUNTING_DT,
'GENERIC' КАК APPL_JRNL_ID,
Случай, когда '" + @busUnit + "' &ЛТ;&ГТ; CG_GLACCOUNT2 потом CG_GLACCOUNT2 еще '" + @busUnit + "' конец как BUSINESS_UNIT_GL,
ФИНАНСОВЫЙ ГОД,
ОТЧЕТНЫЙ ПЕРИОД,
"КАК JOURNAL_ID,
'" + @timestamp + "' как JOURNAL_DT,
JOURNAL_LINE,
СЧЕТ,
ALTACCT,
DEPTID,
ОПЕРАТИВНОЕ ПОДРАЗДЕЛЕНИЕ,
ПРОДУКТ,
FUND_CODE,
CLASS_FLD,
ПРОГРАММНЫЙ КОД,
BUDGET_REF,
ФИЛИАЛ,
AFFILIATE_INTRA1,
AFFILIATE_INTRA2,
CHARTFIELD1,
CHARTFIELD2,
CHARTFIELD3,
PROJECT_ID,
CURRENCY_CD,
STATISTICS_CODE,
ИНОСТРАННАЯ ВАЛЮТА,
RT_TYPE,
RATE_MULT,
RATE_DIV,
ДЕНЕЖНАЯ СУММА,
FOREIGN_AMOUNT,
STATISTIC_AMOUNT,
MOVEMENT_FLAG,
DOC_TYPE,
DOC_SEQ_NBR,
DOC_SEQ_DATE,
JRNL_LN_REF,
LINE_DESCR,
IU_SYS_TRAN_CD,
IU_TRAN_CD,
IU_ANCHOR_FLG,
GL_DISTRIB_STATUS,
ЭКЗЕМПЛЯР ПРОЦЕССА,
DTTM_STAMP
ОТ PS_CG_WF_PRIOR_JGN ) GL_ENTRIES ";


--- Следующее относится к внутрихолдинговой партии

SET @Inter_Company = "вставить в PS_JGEN_ACCT_ENTRY
(SEQUENCENO,
БИЗНЕС-ЕДИНИЦА,
ИДЕНТИФИКАТОР ТРАНЗАКЦИИ,
LEDGER_GROUP,
ГРОССБУХ,
ACCOUNTING_DT,
APPL_JRNL_ID,
BUSINESS_UNIT_GL,
ФИНАНСОВЫЙ ГОД,
ОТЧЕТНЫЙ ПЕРИОД,
JOURNAL_ID,
JOURNAL_DATE,
JOURNAL_LINE,
СЧЕТ,
ALTACCT,
DEPTID,
ОПЕРАТИВНОЕ ПОДРАЗДЕЛЕНИЕ,
ПРОДУКТ,
FUND_CODE,
CLASS_FLD,
ПРОГРАММНЫЙ КОД,
BUDGET_REF,
ФИЛИАЛ,
AFFILIATE_INTRA1,
AFFILIATE_INTRA2,
CHARTFIELD1,
CHARTFIELD2,
CHARTFIELD3,
PROJECT_ID,
CURRENCY_CD,
STATISTICS_CODE,
ИНОСТРАННАЯ ВАЛЮТА,
RT_TYPE,
RATE_MULT,
RATE_DIV,
ДЕНЕЖНАЯ СУММА,
FOREIGN_AMOUNT,
STATISTIC_AMOUNT,
MOVEMENT_FLAG,
DOC_TYPE,
DOC_SEQ_NBR,
DOC_SEQ_DATE,
JRNL_LN_REF,
LINE_DESCR,
IU_SYS_TRAN_CD,
IU_TRAN_CD,
IU_ANCHOR_FLG,
GL_DISTRIB_STATUS,
ЭКЗЕМПЛЯР ПРОЦЕССА,
DTTM_STAMP)
ВЫБЕРИТЕ ROW_NUMBER() OVER (ORDER BY TRANSACTION_ID) AS SEQUENCENO, * FROM

( ВЫБИРАТЬ
'" + @busUnit + "' как BUSINESS_UNIT,
ИДЕНТИФИКАТОР ТРАНЗАКЦИИ,
"ФАКТИЧЕСКИЕ ДАННЫЕ" КАК LEDGER_GROUP,
"ФАКТИЧЕСКИЕ ДАННЫЕ" КАК ГРОССБУХ,
'" + @timestamp + "' как ACCOUNTING_DT,
'GENERIC' КАК APPL_JRNL_ID,
'" + @busUnit + "' как BUSINESS_UNIT_GL,
ФИНАНСОВЫЙ ГОД,
ОТЧЕТНЫЙ ПЕРИОД,
"КАК JOURNAL_ID,
'" + @timestamp + "' как JOURNAL_DT,
JOURNAL_LINE,
СЧЕТ,
ALTACCT,
DEPTID,
ОПЕРАТИВНОЕ ПОДРАЗДЕЛЕНИЕ,
ПРОДУКТ,
FUND_CODE,
CLASS_FLD,
ПРОГРАММНЫЙ КОД,
BUDGET_REF,
ФИЛИАЛ,
AFFILIATE_INTRA1,
AFFILIATE_INTRA2,
CHARTFIELD1,
CHARTFIELD2,
CHARTFIELD3,
PROJECT_ID,
CURRENCY_CD,
STATISTICS_CODE,
ИНОСТРАННАЯ ВАЛЮТА,
RT_TYPE,
RATE_MULT,
RATE_DIV,
ДЕНЕЖНАЯ СУММА,
FOREIGN_AMOUNT,
STATISTIC_AMOUNT,
MOVEMENT_FLAG,
DOC_TYPE,
DOC_SEQ_NBR,
DOC_SEQ_DATE,
JRNL_LN_REF,
LINE_DESCR,
IU_SYS_TRAN_CD,
IU_TRAN_CD,
IU_ANCHOR_FLG,
GL_DISTRIB_STATUS,
ЭКЗЕМПЛЯР ПРОЦЕССА,
DTTM_STAMP
ОТ PS_CG_WF_PRIOR_JGN
СОЮЗ
ВЫБИРАТЬ
'" + @busUnit + "' как BUSINESS_UNIT,
ИДЕНТИФИКАТОР ТРАНЗАКЦИИ,
"ФАКТИЧЕСКИЕ ДАННЫЕ" КАК LEDGER_GROUP,
"ФАКТИЧЕСКИЕ ДАННЫЕ" КАК ГРОССБУХ,
'" + @timestamp + "' как ACCOUNTING_DT,
'GENERIC' КАК APPL_JRNL_ID,
Случай, когда '" + @busUnit + "' &ЛТ;&ГТ; CG_GLACCOUNT2 потом CG_GLACCOUNT2 еще '" + @busUnit + "' конец как BUSINESS_UNIT_GL,
ФИНАНСОВЫЙ ГОД,
ОТЧЕТНЫЙ ПЕРИОД,
"КАК JOURNAL_ID,
'" + @timestamp + "' как JOURNAL_DT,
JOURNAL_LINE,
СЧЕТ,
ALTACCT,
DEPTID,
ОПЕРАТИВНОЕ ПОДРАЗДЕЛЕНИЕ,
ПРОДУКТ,
FUND_CODE,
CLASS_FLD,
ПРОГРАММНЫЙ КОД,
BUDGET_REF,
ФИЛИАЛ,
AFFILIATE_INTRA1,
AFFILIATE_INTRA2,
CHARTFIELD1,
CHARTFIELD2,
CHARTFIELD3,
PROJECT_ID,
CURRENCY_CD,
STATISTICS_CODE,
ИНОСТРАННАЯ ВАЛЮТА,
RT_TYPE,
RATE_MULT,
RATE_DIV,
ДЕНЕЖНАЯ СУММА,
FOREIGN_AMOUNT,
STATISTIC_AMOUNT,
MOVEMENT_FLAG,
DOC_TYPE,
DOC_SEQ_NBR,
DOC_SEQ_DATE,
JRNL_LN_REF,
LINE_DESCR,
IU_SYS_TRAN_CD,
IU_TRAN_CD,
IU_ANCHOR_FLG,
GL_DISTRIB_STATUS,
ЭКЗЕМПЛЯР ПРОЦЕССА,
DTTM_STAMP
ИЗ PS_CG_WF_PRIOR_JGN ) GL_ENTRIES";

---- проверьте, является ли это внутрихолдинговым пакетом, и соответственно вызовите соответствующий оператор insert.

Выберите @IC_Flag = CG_INTERCOMPANY из PS_CG_WF_PRIOR_JGN;

Печать @IC_Flag;

IF (@IC_Flag = 'Y')
НАЧАТЬ
Принт ' Г это в компании;
Метод exec(@Inter_Company);
Печать "назад от исполнителя @Inter_company";
КОНЕЦ

ЕЩЕ


НАЧАТЬ
Печать 'не внутрихолдинговых' ;
Метод exec(@Non_Inter_Company);
Выведите 'Back from exec of @Non_Inter_company';
КОНЕЦ

КОНЕЦ

Что я уже пробовал:

Я погуглил ошибку, поместил LINENO 0 после начала, чтобы попытаться найти строку с ошибкой, и запустил SQL standalone. Не повезло. Любые мысли будут очень оценены.

2 Ответов

Рейтинг:
1

W∴ Balboos, GHB

Откуда вы его скопировали/вставили? Спросите их (авторов) о вашей проблеме!

Кроме того, мы понятия не имеем, как выглядят ваши таблицы данных или что - то еще.

Иными словами, есть ли у вас хоть малейшее представление о том, что вы делаете?


Рейтинг:
1

MadMyche

Определенная проблема: команда, которую вы создаете, имеет более 1800 символов, и вы помещаете ее в DECLARE @Non_Inter_Company varchar(1000);
Вторичное предупреждение: переменная должна быть NVarChar.
Возможная проблема: проблемы конкатенации с запросом pieced together.

Рекомендации:
1 - измените переменную на nvarchar(4000)
2 - попробуйте обойтись без сцепленных элементов