Я пытаюсь запустить мои скрипты хранимой процедуры. Есть 21 сценарий, среди которых 18 успешно выполнены, но 3 из них не исполняются. Один из сценария, который неудовлетворительный дается ниже (я использую PostgreSQL 9.5)PostgresSQL: Ошибка: слишком много параметров указано для повышения
CREATE OR REPLACE FUNCTION create_temp_eid_table (tempPatientMappingTableName IN text ,errorMsg OUT text)
RETURNS text AS $body$
BEGIN
EXECUTE 'create table ' || tempPatientMappingTableName || ' (
ENCOUNTER_MAP_ID varchar(200) NOT NULL,
ENCOUNTER_MAP_ID_SOURCE varchar(50) NOT NULL,
PROJECT_ID VARCHAR(50) NOT NULL,
PATIENT_MAP_ID varchar(200),
PATIENT_MAP_ID_SOURCE varchar(50),
ENCOUNTER_ID varchar(200) NOT NULL,
ENCOUNTER_ID_SOURCE varchar(50) ,
ENCOUNTER_NUM numeric,
ENCOUNTER_MAP_ID_STATUS varchar(50),
PROCESS_STATUS_FLAG char(1),
UPDATE_DATE timestamp,
DOWNLOAD_DATE timestamp,
IMPORT_DATE timestamp,
SOURCESYSTEM_CD varchar(50)
) WITH OIDS';
EXECUTE 'CREATE INDEX idx_' || tempPatientMappingTableName || '_eid_id ON ' || tempPatientMappingTableName || ' (ENCOUNTER_ID, ENCOUNTER_ID_SOURCE, ENCOUNTER_MAP_ID, ENCOUNTER_MAP_ID_SOURCE, ENCOUNTER_NUM)';
EXECUTE 'CREATE INDEX idx_' || tempPatientMappingTableName || '_stateid_eid_id ON ' || tempPatientMappingTableName || ' (PROCESS_STATUS_FLAG)';
EXCEPTION
WHEN OTHERS THEN
RAISE NOTICE '%%%', SQLSTATE, ' - ' , SQLERRM;
END;
$body$
LANGUAGE PLPGSQL;
я получаю ошибку о том, что
" org.postgresql.util.PSQLException: ERROR: too many parameters specified for RAISE
Where: compilation of PL/pgSQL function "create_temp_eid_table" near line 23".
Please check the image for clear error message.
thanks..it работал –
@mohammadshahbazKhan Если вы мало, что это правильно, не забудьте принять его. Его значок V слева. –