Я решил эту проблему.Я поместил часть DO в запятые '
и заменил "
на двойные запятые ''
.Теперь все работает нормально.Я не уверен, что там важен тип IDE, но я использовал IDEA 2019.1.3 (не тестировался на Eclipse). Теперь приведенный выше код выглядит следующим образом
DO '
DECLARE
columns_count INTEGER;
table_exists BOOLEAN;
BEGIN
table_exists = (SELECT EXISTS (SELECT 1 FROM information_schema.tables WHERE table_schema = ''public'' AND table_name = ''audit''));
IF (table_exists) THEN
columns_count = (SELECT COUNT(column_name)
FROM information_schema.columns
WHERE table_name=''audit'' and (
column_name=''entry_date'' or
column_name=''payload'' or
column_name=''uid'' or
column_name=''type'' or
column_name=''session_id'' or
column_name=''user_uid'' or
column_name=''username''));
END IF;
IF (table_exists = false) OR (columns_count != 7) THEN
DROP TABLE IF EXISTS public.audit;
CREATE TABLE public.audit (
entry_date timestamp without time zone DEFAULT CURRENT_TIMESTAMP,
payload text,
uid character varying(36),
type character varying(1),
session_id character varying(128),
user_uid character varying(36),
username character varying(1024)
);
ALTER TABLE public.audit OWNER TO postgres;
END IF;
END';