Есть проблема с загрузкой данных через sql файл:
https://sourceforge.net/projects/red1/files/LiberoPayroll/data_migraton_...
Автор скрипта утверждает, что на его установке PostreSQL данный файл грузится без проблем.
Когда я пытаюсь агрузить его через pgAdmin 4 (PostreSQL 9.6) появляется ошибка:
"ERROR: relation "hr_contract" does not exist
LINE 3: INSERT INTO HR_Contract (HR_Contract_ID,NetDays,ValidFrom,De..."
Полная запись строки 3:
INSERT INTO HR_Contract (HR_Contract_ID,NetDays,ValidFrom,Description,Name,Value,AD_Org_ID,Created,CreatedBy,IsActive,Updated,UpdatedBy,AD_Client_ID,HR_Contract_UU) VALUES (1000000,30,TO_TIMESTAMP('2013-03-01 00:00:00','YYYY-MM-DD HH24:MI:SS'),'Monthly','Monthly','Monthly',0,TO_TIMESTAMP('2013-03-27 05:59:02','YYYY-MM-DD HH24:MI:SS'),100,'Y',TO_TIMESTAMP('2013-03-27 05:59:02','YYYY-MM-DD HH24:MI:SS'),100,11,'2843de75-ec9f-4c43-9b5a-7f0b37fe232c')
;
база данных: idempiere
содержит 2 schemas: adempiere и public
schema adempiere содержит таблицу HR_Contract.
Если я заменяю название таблицы в команде на adempiere.HR_Contract (=schema.Table_Name), то команда проходит без ошибок.
Поясните, пожалуйста, что нужно поменять в установках сервера, чтобы указанный скрипт был выполнен без ошибок?
Спасибо.
> "ERROR: relation
> "ERROR: relation "hr_contract" does not exist
Ну и чего вам непонятно? hr_contract не существует. Таблицу создайте перед тем как вставлять в неё что-либо.
> Если я заменяю название таблицы в команде на adempiere.HR_Contract (=schema.Table_Name), то команда проходит без ошибок.
значит таблица создана не в той схеме, в которой она ищется.
> Поясните, пожалуйста, что нужно поменять в установках сервера, чтобы указанный скрипт был выполнен без ошибок?
Доки, когда читать начнём?
http://postgresql.ru.net/manual/ddl-schemas.html#DDL-SCHEMAS-PATH
команда SET search_path TO
Спасибо за пояснение. Прошу прощение за наивные вопросы. Я не ставлю задачу ни выучить sql, ни освоить postgreSQL. Мне просто надо выполнить данный скрипт, поскольку его автор не видит с ним проблем.
Подскажите, пожалуйста, как выполнить команду SET правильно?
Я запускаю ее через tools -> query tool. появляется подтверждение "SET". Команда SHOW search_path в том же окне показывает измененный путь.
Однако скрипт по-прежнему не идет.
Более того, когда я запускаю еще один query с командой SHOW search_path, в ответе показывает стандартный "$user", public.
Подскажите, пожалуйста, где ошибка в моих действиях?
Спасибо.