Caused by org postgresql util psqlexception error syntax error at or near user

Hello. I work with postgresql. ResultMap: <result property="...

Hello.
I work with postgresql.

ResultMap:

 <resultMap id="user" type="dao.entity.User">
        <id property="id" column="id"/>
        <result property="login" column="login"/>
        <result property="password" column="password"/>
        <association property="userCard" column = "id" javaType = "dao.entity.UserCard"
                     select="mapper.users.UserMap.getUserCard" fetchType="eager"/>

</resultMap>

Insert request:

<insert id="addUser" parameterType="dao.entity.User">
        <selectKey keyProperty="id,userCard.id" resultType="map" order="BEFORE">
            SELECT nextVal('public.hibernate_sequence') as id;
            SELECT nextVal('public.hibernate_sequence') as userCard.id;
        </selectKey>

        insert into users
        (id,login,password)
        values (
            ${id},
            #{login},
            #{password}
        );

        insert into users_cards (id,ref_user,surname,name,patronymic,birthday)
        values (
            ${userCard.id},
            ${id},
            #{userCard.surname},
            #{userCard.name},
            #{userCard.patronymic},
            #{userCard.birthday}
        );
</insert>
org.apache.ibatis.executor.ExecutorException: Error selecting key or setting result to parameter object. Cause: org.postgresql.util.PSQLException: ERROR: syntax error at or near "."

How I can set userCard.id?

I have defined the following pojo to store user information

package com.example.model;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.Parameter;

@Entity
@Table(name = "user")
public class User {
	
	@GenericGenerator(
	        name = "userSequenceGenerator",
	        strategy = "org.hibernate.id.enhanced.SequenceStyleGenerator",
	        parameters = {
	                @Parameter(name = "sequence_name", value = "userSequence"),
	                @Parameter(name = "initial_value", value = "1"),
	                @Parameter(name = "increment_size", value = "1")
	        }
	)
	
	@Id
	@GeneratedValue(generator = "userSequenceGenerator")
    private long id;
    private String name;
    private int age;
    private String email;


    public long getId() {
		return id;
	}

	public void setId(long id) {
		this.id = id;
	}

	public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

}

On startup of my application, i am getting the following exception


org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.class]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1628) ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555) ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483) ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE]
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE]
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE]
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE]
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1078) ~[spring-context-4.3.10.RELEASE.jar:4.3.10.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:857) ~[spring-context-4.3.10.RELEASE.jar:4.3.10.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543) ~[spring-context-4.3.10.RELEASE.jar:4.3.10.RELEASE]
	at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) ~[spring-boot-1.5.6.RELEASE.jar:1.5.6.RELEASE]
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693) [spring-boot-1.5.6.RELEASE.jar:1.5.6.RELEASE]
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360) [spring-boot-1.5.6.RELEASE.jar:1.5.6.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:303) [spring-boot-1.5.6.RELEASE.jar:1.5.6.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1118) [spring-boot-1.5.6.RELEASE.jar:1.5.6.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1107) [spring-boot-1.5.6.RELEASE.jar:1.5.6.RELEASE]
	at com.Start.main(Start.java:18) [bin/:na]
Caused by: javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory
	at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.persistenceException(EntityManagerFactoryBuilderImpl.java:954) ~[hibernate-entitymanager-5.0.12.Final.jar:5.0.12.Final]
	at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:882) ~[hibernate-entitymanager-5.0.12.Final.jar:5.0.12.Final]
	at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:60) ~[spring-orm-4.3.10.RELEASE.jar:4.3.10.RELEASE]
	at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:353) ~[spring-orm-4.3.10.RELEASE.jar:4.3.10.RELEASE]
	at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:370) ~[spring-orm-4.3.10.RELEASE.jar:4.3.10.RELEASE]
	at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:359) ~[spring-orm-4.3.10.RELEASE.jar:4.3.10.RELEASE]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1687) ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1624) ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE]
	... 16 common frames omitted
Caused by: org.hibernate.tool.schema.spi.SchemaManagementException: Unable to execute schema management to JDBC target [create table user (id int8 not null, age int4 not null, email varchar(255), name varchar(255), primary key (id))]
	at org.hibernate.tool.schema.internal.TargetDatabaseImpl.accept(TargetDatabaseImpl.java:59) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
	at org.hibernate.tool.schema.internal.SchemaMigratorImpl.applySqlString(SchemaMigratorImpl.java:431) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
	at org.hibernate.tool.schema.internal.SchemaMigratorImpl.applySqlStrings(SchemaMigratorImpl.java:420) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
	at org.hibernate.tool.schema.internal.SchemaMigratorImpl.createTable(SchemaMigratorImpl.java:236) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
	at org.hibernate.tool.schema.internal.SchemaMigratorImpl.doMigrationToTargets(SchemaMigratorImpl.java:167) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
	at org.hibernate.tool.schema.internal.SchemaMigratorImpl.doMigration(SchemaMigratorImpl.java:60) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
	at org.hibernate.tool.hbm2ddl.SchemaUpdate.execute(SchemaUpdate.java:134) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
	at org.hibernate.tool.hbm2ddl.SchemaUpdate.execute(SchemaUpdate.java:101) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
	at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:472) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
	at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:444) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
	at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:879) ~[hibernate-entitymanager-5.0.12.Final.jar:5.0.12.Final]
	... 22 common frames omitted
Caused by: org.postgresql.util.PSQLException: ERROR: syntax error at or near "user"
  Position: 14
	at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2477) ~[postgresql-42.1.4.jar:42.1.4]
	at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2190) ~[postgresql-42.1.4.jar:42.1.4]
	at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:300) ~[postgresql-42.1.4.jar:42.1.4]
	at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:428) ~[postgresql-42.1.4.jar:42.1.4]
	at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:354) ~[postgresql-42.1.4.jar:42.1.4]
	at org.postgresql.jdbc.PgStatement.executeWithFlags(PgStatement.java:301) ~[postgresql-42.1.4.jar:42.1.4]
	at org.postgresql.jdbc.PgStatement.executeCachedSql(PgStatement.java:287) ~[postgresql-42.1.4.jar:42.1.4]
	at org.postgresql.jdbc.PgStatement.executeWithFlags(PgStatement.java:264) ~[postgresql-42.1.4.jar:42.1.4]
	at org.postgresql.jdbc.PgStatement.executeUpdate(PgStatement.java:244) ~[postgresql-42.1.4.jar:42.1.4]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_71]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_71]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_71]
	at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_71]
	at org.apache.tomcat.jdbc.pool.StatementFacade$StatementProxy.invoke(StatementFacade.java:114) ~[tomcat-jdbc-8.5.16.jar:na]
	at com.sun.proxy.$Proxy78.executeUpdate(Unknown Source) ~[na:na]
	at org.hibernate.tool.schema.internal.TargetDatabaseImpl.accept(TargetDatabaseImpl.java:56) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
	... 32 common frames omitted

INTELLIGENT WORK FORUMS
FOR COMPUTER PROFESSIONALS

Contact US

Thanks. We have received your request and will respond promptly.

Log In

Come Join Us!

Are you a
Computer / IT professional?
Join Tek-Tips Forums!

  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It’s Free!

*Tek-Tips’s functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Students Click Here

org.postgresql.util.PSQLException: ERROR: syntax error at or near «)»

org.postgresql.util.PSQLException: ERROR: syntax error at or near «)»

(OP)

21 May 05 06:33

I am confounded in having the following PSQLException error everytime I SUCCESSFULLY (note: i.e., successfully) attempt to programmatically insert set of values onto a table using PostgreSQL’s JDBC. In my attempt to look for the root cause, I arrived at the rather too simple an SQL INSERT statement as below which still fails to point on the underlying problem:  

INSERT INTO «PUBLIC».»tblJOB_PROFILE» ( «ccJOBPROFILE_NO» ) VALUES ( ’05-0038′ );

org.postgresql.util.PSQLException: ERROR: syntax error at or near «)»

I even actually tried to run that straight in PGAdmin III’s Query tool to test it out. It works perfectly fine there.

Where do I go wrong programmatically? =D Here’s a snippet of my code:

 sIns = «INSERT INTO «PUBLIC».»tblJOB_PROFILE» » +
                    » ( «ccJOBPROFILE_NO» )» +
                    » VALUES ( ‘» + lblJobProfileCode.getText() + «‘ );»;

            int iRowCount = pStm.executeUpdate(sIns);

                        rs.insertRow();

— — — — —
I am using PostgreSQL ver8.0 and pg74.215.jdbc3.jar

Many many thanks in advance if you can enlighten me on this.

Red Flag Submitted

Thank you for helping keep Tek-Tips Forums free from inappropriate posts.
The Tek-Tips staff will check this out and take appropriate action.

Join Tek-Tips® Today!

Join your peers on the Internet’s largest technical computer professional community.
It’s easy to join and it’s free.

Here’s Why Members Love Tek-Tips Forums:

  • Tek-Tips ForumsTalk To Other Members
  • Notification Of Responses To Questions
  • Favorite Forums One Click Access
  • Keyword Search Of All Posts, And More…

Register now while it’s still free!

Already a member? Close this window and log in.

Join Us             Close

Содержание

  1. Re: Caused by: org.postgresql.util.PSQLException: ERROR: syntax error at or near «merge».
  2. Ошибка Error syntax error at or near 1 в PostgreSQL: что это такое?
  3. PostgreSQL – что это?
  4. Как определить версию?
  5. Преимущества базы
  6. Пуск pgAdmin-4 и подсоединение к серверной
  7. Синтаксическая ошибка в или около «IF» PostgreSQL
  8. 1 ответы

Re: Caused by: org.postgresql.util.PSQLException: ERROR: syntax error at or near «merge».

From: Alvaro Herrera
To: Vinodh NV
Cc: pgsql-general

Subject: Re: Caused by: org.postgresql.util.PSQLException: ERROR: syntax error at or near «merge». Date: 2018-03-07 09:34:44 Message-ID: 20180307093444.upjdj2moqep46a6u@alvherre.pgsql Views: Raw Message | Whole Thread | Download mbox | Resend email Thread: Lists: pgsql-general

Vinodh NV wrote:
> Sir,
>
> I am facing the error Caused by: org.postgresql.util.PSQLException: ERROR:
> syntax error at or near «merge». when I execute the below query in
> postgres database. The same works fine in Oracle.
>
> merge into net n using dual on (n.id=:id) when matched then update set
> Status=:status, lastStatusDate=:lastStatusDate, errorMessage=:errorMessage,
> errorDetails=:errorDetails when not matched then insert (id,Status,
> lastStatusDate, errorMessage, errorDetails) values
> (:id,:status,:lastStatusDate,:errorMessage,:errorDetails)»;
>
>
> Can you please let me know how to resolve it?

Easy — just don’t use merge with Postgres, as it doesn’t support MERGE
yet. There’s work ongoing to support it, but it will appear in Postgres
11 at the earliest.

There exists a nonstandard command INSERT ON CONFLICT DO UPDATE which
would probably be useful.

Источник

Ошибка Error syntax error at or near 1 в PostgreSQL: что это такое?

Многие пользователи сталкиваются с ошибка Error syntax error at or near 1 в PostgreSQL. Уведомления о сбое в программе обычно достаточно корректны. Скорее всего причина в том, что драйвер редактирует детали. Обычно достаточно посмотреть на журнал Postgres, где присутствуют все сведения.

PostgreSQL – что это?

Реляционная система информации, помогающая пользователям упорядочить сведения и иметь общую картину об их взаимосвязи. Информационная база имеет открытый код, и ее поддержка осуществляется на протяжение 30 летнего периода с момента разработки. Она наиболее востребованная у пользователей, из аналогичных реляционных баз данных.

Как определить версию?

Чтобы узнать серверную версию следует набрать командный путь: pg_config –version. Также можно прописать: postgres -V. А чтобы определить версию клиента необходима коанда: psql –version. Альтернативное решение sudo -u postgres psql -c ‘Select version ()’ | grep PostgreSQL.

Преимущества базы

Программа популярна. Этому есть много причин:

  • полноценная совместимость SQL;
  • не закрытый исходный код;
  • расширенные настройки, позволяющие делать личные, индивидуальные плагины и проводить персонализацию критериев;
  • можно индексировать геометрические (и по географии) объекты;
  • присутствуют расширения Пост GIS;
  • опция MVCС, чтобы управлять параллельным доступом путем много-версионности;
  • расширяемость, дающая возможность масштабировать посредством сохраняемых процессов;
  • • поддержка определенного объектно-ориентированного функционала.

Помимо этого база регулярно обновляется, что также явное преимущество для пользователей.

Пуск pgAdmin-4 и подсоединение к серверной

PgAdmin-4 будет установлен совместно с базой, для его запуска следует кликнуть на «Меню Пуск затем выбрать непосредственно саму программу и уже после пгАдмин4.

Обновленная версия обладает веб-интерфейсом, потому у пользователя произойдет запуск браузера, где и откроется программа админ4.

Чтобы подключится к только что скаченному и прошедшему процесс установки локальному серверу в серверном обозревателе надо нажать на категорию «PostgreSQL-11».

В итоге будет выполнен запуск «Connect to Server», где потребуется прописать пароль системного пользователя postgres, а именно тот пароль, который был придуман пользователем во время установки программы с базой. После того как введен пароль, нужно поставить галочку «Save Password», это позволит осуществить его сохранение, после чего не потребуется вводить его при каждом входе.

Обязательно подтвердить действие кликом на «OK». В результате будет выполнено подключение к локальной серверной базы.

Источник

Синтаксическая ошибка в или около «IF» PostgreSQL

Я пытаюсь использовать подзапрос в своем коде, но это дает мне ошибку. Я нашел много решений, но они все еще не работают:

Не могли бы вы помочь мне?

задан 04 сен ’12, 10:09

Для всех, кто читает это позже, обратите внимание, что на плакате отсутствует окружающий текст. DO определение блока или функции. Вы не можете запускать анонимные блоки PL/PgSQL в PostgreSQL, они должны быть окружены DO or CREATE [OR REPLACE] FUNCTION с LANGUAGE пункт. — Craig Ringer

1 ответы

Опустить точку с запятой после «НАЧАЛО»? Это если это тело функции plpgsql.

Если это сценарий psql, IF оператор должен быть передан plpgsql для выполнения, поэтому необходимо ввести DO $$ . $$ построить.

Или, конечно, вы можете провести рефакторинг следующим образом:

О, это похоже на решение.. но я не понимаю, как это работает. Я хочу проверить, существует ли запись, если да — ничего не делать, если нет записи вставки — как работает ваш код INSERT? — javaДевушка

INSERT не обязательно должен иметь фиксированный набор значений, он может принимать в качестве входных данных любой SELECT. Итак, часть SELECT, которую вы можете запустить самостоятельно, и она производит (‘abc’, 7) если строка не существует. Затем этот результат может быть передан в INSERT. — аракнид

Хмммм, давайте предположим, что у меня есть: INSERT INTO Table (X, Y) Values ​​(A, B), но только в случае, если значение B не существует в столбце Y. Как будет выглядеть весь код? — javaДевушка

У меня есть еще один вопрос. как я могу использовать его в MySQL? — javaДевушка

@javaGirl извините, я не знаю о mysql. — аракнид

Не тот ответ, который вы ищете? Просмотрите другие вопросы с метками postgresql if-statement or задайте свой вопрос.

Источник

I have a Java application connecting to a PostgreSQL database.

Using straightforward code like:

        ps = con.prepareStatement(sql);
        if (dataTypes != null && dataTypes.size() > 0) {
            for (int i = 0; i < dataTypes.size(); ++i) {
                if (dataTypes.get(i) == DataTypes.NUMERIC)
                    ps.setLong((i + 1), Long.parseLong(values.get(i)));
                else
                    ps.setString((i + 1), values.get(i));
            }
        }
        rs = ps.executeQuery();

and with a query like

select ? from dummy

it just works fine. In the postgres logs what shows is:

2015-06-13 12:48:30 EEST [28294-3] xx LOG:  execute <unnamed>: select $1 from dummy
2015-06-13 12:48:30 EEST [28294-4] xx DETAIL:  parameters: $1 = '0'

But with a query like:

select to_char(now()+interval ? day, 'YYYYMMDD') from dummy

I get a syntax error:

Cause [org.postgresql.util.PSQLException: ERROR: syntax error at or near "$1"

and in the postgres logs:

2015-06-13 13:17:39 EEST [29311-3] xxx ERROR:  syntax error at or near "$1" at character 31
2015-06-13 13:17:39 EEST [29311-4] xxx STATEMENT:  select to_char(now()+interval $1 day, 'YYYYMMDD') from dummy

but in pgadmin something like

select to_char(now()+interval '0' day, 'YYYYMMDD') from dummy

works just fine without any error.

I just can’t figure out what the problem is. Why does one of the queries work but the other one doesn’t?

My PostgreSQL version is 9.4

I am creating a java web application using MyBatis and postgres.
If i execute insert query as shown below, an error will occur.

■ MyBatis xml file

&lt;insert id = "insertRace"&gt;
        insert into t_race (race_id, obstacle_flg, race_name, grade, race_number, field_type, distance, rotate_type, weather, field_condition, host_id, post_time, host_date, host_times, host_days, horse_type, age_condition, product_condition, appointed_condition, sex_condition, weight_condition, insert_date, insert_user, update_date, update_user)
        values ​​('${raceId}', ${obstacleFlg}, '${raceName}', '${grade}', ${raceNumber}, '${fieldType}', ${distance}, '${rotateType} ',' ${weather} ',' ${fieldCondition} ',' ${hostId} ', ${postTime}, ${hostDate}, ${hostTimes}, ${hostDays}, ${horseType},' ${ageCondition} ', ${productCondition}, ${appointedCondition}, ${sexCondition}, ${weightCondition}, CURRENT_TIMESTAMP,' SYSTEM ', CURRENT_TIMESTAMP,' SYSTEM ')
    &lt;/insert&gt;

■ Errors output by postgres

ERROR: syntax error at or near ":" at character 433
STATEMENT: insert into t_race (race_id, obstacle_flg, race_name, grade, race_number, field_type, distance, rotate_type, weather, field_condition, host_id, post_time, host_date, host_times, host_days, horse_type, age_condition, product_condition, appointed_condition, sex_condition, weight_condition, insert_date, insert_user, update_date, update_user)
            values ​​('201606020302', 0, '3 years old not won', 'not won', 2, 'dirt', 1200, 'right', 'cloudy', 'good', '06', 10:40:00, 2016-03-05, 2, 3, 1, '3 years old', 1, 2, 999, 4, CURRENT_TIMESTAMP, 'SYSTEM', CURRENT_TIMESTAMP, 'SYSTEM')

■ java console exception

### Error updating database. Cause: org.postgresql.util.PSQLException: ERROR: syntax error at or near ":"
  Position: 433
### The error may involve defaultParameterMap
### The error occurred while setting parameters
### SQL: insert into t_race (race_id, obstacle_flg, race_name, grade, race_number, field_type, distance, rotate_type, weather, field_condition, host_id, post_time, host_date, host_times, host_days, horse_type, age_condition, product_condition, appointed_condition, sex_condition, weight_condition , insert_date, insert_user, update_date, update_user) values ​​('201606020302', 0, '3 years old not won', 'not won', 2, 'dirt', 1200, 'right', 'cloudy', 'good', ' 06 ', 10:40:00, 2016-03-05, 2, 3, 1,' 3 years old ', 1, 2, 999, 4, CURRENT_TIMESTAMP,' SYSTEM ', CURRENT_TIMESTAMP,' SYSTEM ')
### Cause: org.postgresql.util.PSQLException: ERROR: syntax error at or near ":"
  Position: 433
bad SQL grammar [];nested exception is org.postgresql.util.PSQLException: ERROR: syntax error at or near ":"
  Position: 433] with root cause
org.postgresql.util.PSQLException: ERROR: syntax error at or near ":"
  Position: 433
    at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse (QueryExecutorImpl.java:2102)
    at org.postgresql.core.v3.QueryExecutorImpl.processResults (QueryExecutorImpl.java:1835)
    at org.postgresql.core.v3.QueryExecutorImpl.execute (QueryExecutorImpl.java:257)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.execute (AbstractJdbc2Statement.java:500)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags (AbstractJdbc2Statement.java:388)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.execute (AbstractJdbc2Statement.java:381)
    at org.apache.ibatis.executor.statement.PreparedStatementHandler.update (PreparedStatementHandler.java:45)
    at org.apache.ibatis.executor.statement.RoutingStatementHandler.update (RoutingStatementHandler.java:73)at org.apache.ibatis.executor.SimpleExecutor.doUpdate (SimpleExecutor.java:49)
    at org.apache.ibatis.executor.BaseExecutor.update (BaseExecutor.java:115)
    at org.apache.ibatis.executor.CachingExecutor.update (CachingExecutor.java:75)
    at org.apache.ibatis.session.defaults.DefaultSqlSession.update (DefaultSqlSession.java:170)
    at org.apache.ibatis.session.defaults.DefaultSqlSession.insert (DefaultSqlSession.java:157)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:483)
    at org.mybatis.spring.SqlSessionTemplate $SqlSessionInterceptor.invoke (SqlSessionTemplate.java:358)
    at com.sun.proxy. $Proxy12.insert (Unknown Source)
    at org.mybatis.spring.SqlSessionTemplate.insert (SqlSessionTemplate.java:240)
    at org.apache.ibatis.binding.MapperMethod.execute (MapperMethod.java:52)
    at org.apache.ibatis.binding.MapperProxy.invoke (MapperProxy.java:53)
    at com.sun.proxy. $Proxy24.insertRace (Unknown Source)
    at jp.keiba.analitics.service.ScrapingDataService.insertRace (ScrapingDataService.java:169)
    at jp.keiba.analitics.service.ScrapingDataService.insertAll (ScrapingDataService.java:45)
    at jp.keiba.analitics.controller.scraping.UrlRaceScrpController.raceComplete (UrlRaceScrpController.java:90)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:483)
    at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke (InvocableHandlerMethod.java:221)
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest (InvocableHandlerMethod.java:136)
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle (ServletInvocableHandlerMethod.java:110)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod (RequestMappingHandlerAdapter.java:817)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal (RequestMappingHandlerAdapter.java:731)
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle (AbstractHandlerMethodAdapter.java:85)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch (DispatcherServlet.java:959)
    at org.springframework.web.servlet.DispatcherServlet.doService (DispatcherServlet.java:893)
    at org.springframework.web.servlet.FrameworkServlet.processRequest (FrameworkServlet.java:968)at org.springframework.web.servlet.FrameworkServlet.doGet (FrameworkServlet.java:859)
    at javax.servlet.http.HttpServlet.service (HttpServlet.java:624)
    at org.springframework.web.servlet.FrameworkServlet.service (FrameworkServlet.java:844)
    at javax.servlet.http.HttpServlet.service (HttpServlet.java:731)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:303)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:208)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter (WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:208)
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal (CharacterEncodingFilter.java:121)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter (OncePerRequestFilter.java:107)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:208)
    at org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:220)
    at org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:122)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke (AuthenticatorBase.java:505)
    at org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:170)
    at org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:103)
    at org.apache.catalina.valves.AccessLogValve.invoke (AccessLogValve.java:956)
    at org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:116)
    at org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:423)
    at org.apache.coyote.http11.AbstractHttp11Processor.process (AbstractHttp11Processor.java:1079)
    at org.apache.coyote.AbstractProtocol $AbstractConnectionHandler.process (AbstractProtocol.java:625)
    at org.apache.tomcat.util.net.JIoEndpoint $SocketProcessor.run (JIoEndpoint.java:318)
    at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor $Worker.run (ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread $WrappingRunnable.run (TaskThread.java:61)
    at java.lang.Thread.run (Thread.java:745)

I don’t use»:»in the query and I’m not sure why the error message is ERROR: syntax error at or near»:».
We are very happy if you can help us.

Это стек ошибок, когда я пытаюсь вставить данные пользователя в таблицу.

Caused by: org.postgresql.util.PSQLException: ERROR: syntax error at or near "RETURNING"
  Position: 52
    at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2182)
    at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1911)
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:173)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:618)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:468)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:414)
    at org.apache.commons.dbcp2.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:98)
    at org.apache.commons.dbcp2.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:98)
    at org.springframework.jdbc.core.JdbcTemplate$3.doInPreparedStatement(JdbcTemplate.java:903)
    at org.springframework.jdbc.core.JdbcTemplate$3.doInPreparedStatement(JdbcTemplate.java:900)
    at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:629)

Я использую хранимые процедуры, чтобы все мое взаимодействие с БД

CREATE OR REPLACE FUNCTION ezhire."insert_user"
(
  in_name character varying, 
  in_email character varying,
  in_image_url character varying, 
  in_provider character varying
) 
RETURNS integer AS $$
DECLARE
  out_inserted_id integer;
BEGIN

  WITH rows as (
    INSERT INTO ezhire.user(name, email, image_url, provider)
    VALUES(in_name, in_email, in_image_url, in_provider)
    RETURNING id
  )
  SELECT id INTO out_inserted_id FROM rows;

  RETURN out_inserted_id;

END;
$$ LANGUAGE plpgsql

Я не могу понять, что происходит не так …

3 ответа

Лучший ответ

Проблема была в моем весеннем коде:

Необходимо изменить этот код

public Role createRole(final Role role){
  KeyHolder holder = new GeneratedKeyHolder();
  PreparedStatementCreator psc = new PreparedStatementCreator() {

    @Override
    public PreparedStatement createPreparedStatement(
        java.sql.Connection conn) throws SQLException {
      PreparedStatement pstmt = conn.prepareStatement(
          QUERIES.ROLE.INSERT_ROLE, new String[] { "id" });

      int i = 1;
      pstmt.setString(i++, role.getName());
      pstmt.setString(i++, role.getAbbreviation());
      pstmt.setString(i++, role.getInfo());
      return pstmt;
    }
  };
  logger.info(psc.toString());
  jdbcTemplate.update(psc, holder);
  Integer userId = holder.getKey().intValue();
  role.setId(userId);
  return role;  
}

К этому:

public Role createRole(final Role role) {
        PreparedStatementCreator psc = new PreparedStatementCreator() {

            @Override
            public PreparedStatement createPreparedStatement(Connection conn)
                    throws SQLException {
                PreparedStatement pstmt = conn
                        .prepareStatement(QUERIES.ROLE.INSERT_ROLE);
                int i = 1;
                pstmt.setString(i++, role.getName());
                pstmt.setString(i++, role.getAbbreviation());
                pstmt.setString(i++, role.getInfo());
                logger.debug(pstmt.toString());
                return pstmt;
            }
        };
        Integer roleId = jdbcTemplate.query(psc,
                new ResultSetExtractor<Integer>() {
                    @Override
                    public Integer extractData(ResultSet rs)
                            throws SQLException, DataAccessException {
                        if (rs.next()) {
                            return rs.getInt("insert_role");
                        }
                        return null;
                    }
                });
        role.setId(roleId);
        return role;
    }


0

Avinash Vundyala
6 Окт 2015 в 11:32

В основном у вас есть два варианта:

PL / pgSQL

Вам необходимо указать цель для значения id:

CREATE OR REPLACE FUNCTION ezhire."insert_user"
(
  in_name character varying, 
  in_email character varying,
  in_image_url character varying, 
  in_provider character varying
) 
RETURNS integer AS $$
DECLARE
  out_inserted_id integer;
BEGIN
  INSERT INTO ezhire.user(name, email, image_url, provider)
  VALUES (in_name, in_email, in_image_url, in_provider)
  RETURNING id INTO out_inserted_id;

  RETURN out_inserted_id;
END;
$$ LANGUAGE plpgsql;

Функция SQL

Увидев, что в функции используется только чистый SQL, используйте функцию языка SQL, которую проще и быстрее написать:

CREATE OR REPLACE FUNCTION ezhire."insert_user"
(
  in_name character varying, 
  in_email character varying,
  in_image_url character varying, 
  in_provider character varying
) 
RETURNS integer AS $$
  INSERT INTO ezhire.user(name, email, image_url, provider)
  VALUES (in_name, in_email, in_image_url, in_provider)
  RETURNING id;
$$ LANGUAGE sql;


0

Patrick
6 Окт 2015 в 03:04

Измените часть WITH, как показано ниже

  WITH test as (
    INSERT INTO ezhire.user(name, email, image_url, provider)
    VALUES(in_name, in_email, in_image_url, in_provider)
    RETURNING id as recentid
  )
  SELECT recentid INTO out_inserted_id FROM test;

(ИЛИ) сделать это без предложения WITH, например

CREATE OR REPLACE FUNCTION ezhire."insert_user"
(
  in_name character varying, 
  in_email character varying,
  in_image_url character varying, 
  in_provider character varying
) 
RETURNS integer AS $$
DECLARE
  out_inserted_id integer;
BEGIN

    INSERT INTO ezhire.user(name, email, image_url, provider)
    VALUES(in_name, in_email, in_image_url, in_provider)
    RETURNING id INTO out_inserted_id;


  RETURN out_inserted_id;

END;
$$ LANGUAGE plpgsql


0

Rahul
5 Окт 2015 в 20:21

На чтение 2 мин Просмотров 705 Опубликовано 05.09.2022

Многие пользователи сталкиваются с ошибка Error syntax error at or near 1 в PostgreSQL. Уведомления о сбое в программе обычно достаточно корректны. Скорее всего причина в том, что драйвер редактирует детали. Обычно достаточно посмотреть на журнал Postgres, где присутствуют все сведения.

PostgreSQL – что это?

Реляционная система информации, помогающая пользователям упорядочить сведения и иметь общую картину об их взаимосвязи. Информационная база имеет открытый код, и ее поддержка осуществляется на протяжение 30 летнего периода с момента разработки. Она наиболее востребованная у пользователей, из аналогичных реляционных баз данных.

Как определить версию?

Чтобы узнать серверную версию следует набрать командный путь: pg_config –version. Также можно прописать: postgres -V. А чтобы определить версию клиента необходима коанда: psql –version. Альтернативное решение sudo -u postgres psql -c ‘Select version ()’ | grep PostgreSQL.

Преимущества базы

Программа популярна. Этому есть много причин:

  • полноценная совместимость SQL;
  • не закрытый исходный код;
  • расширенные настройки, позволяющие делать личные, индивидуальные плагины и проводить персонализацию критериев;
  • можно индексировать геометрические (и по географии) объекты;
  • присутствуют расширения Пост GIS;
  • опция MVCС, чтобы управлять параллельным доступом путем много-версионности;
  • расширяемость, дающая возможность масштабировать посредством сохраняемых процессов;
  • • поддержка определенного объектно-ориентированного функционала.

Помимо этого база регулярно обновляется, что также явное преимущество для пользователей.

Пуск pgAdmin-4 и подсоединение к серверной

PgAdmin-4 будет установлен совместно с базой, для его запуска следует кликнуть на «Меню Пуск затем выбрать непосредственно саму программу и уже после пгАдмин4.

Обновленная версия обладает веб-интерфейсом, потому у пользователя произойдет запуск браузера, где и откроется программа админ4.

Чтобы подключится к только что скаченному и прошедшему процесс установки локальному серверу в серверном обозревателе надо нажать на категорию «PostgreSQL-11».

В итоге будет выполнен запуск «Connect to Server», где потребуется прописать пароль системного пользователя postgres, а именно тот пароль, который был придуман пользователем во время установки программы с базой. После того как введен пароль, нужно поставить галочку «Save Password», это позволит осуществить его сохранение, после чего не потребуется вводить его при каждом входе.

Обязательно подтвердить действие кликом на «OK». В результате будет выполнено подключение к локальной серверной базы.

Понравилась статья? Поделить с друзьями:
  • Caused by org gradle api gradleexception compilation error see log for more details
  • Caused by java lang illegalargumentexception error at 0 formal unbound in pointcut
  • Caused by java io ioexception createprocess error 193 1 не является приложением win32
  • Cause error invalid source release 17
  • Cause error 86 bad cpu type in executable