在pgAdmin中运行以下查询时,一切正常,但是当我从java代码运行查询时,我得到一个错误。
我试图转换变量,但是没有结果,我得到了转换语法的错误
查询界面:
public interface SeanceRepository extends JpaRepository<Seance, Integer>{
@Query(value = "select * from seance, patient where extract(month from date) = ?1 "
+ "and extract(year from d
全
我正在尝试使用PostgreSQL中的dblink在不同的数据库上运行查询。如果表"user“在公共模式下,则执行以下操作:
select * from dblink(
'hostaddr=1.2.3.4 port=5434 dbname=dbname user=username password=password',
'select id from user')
as t1(
id bigint
);
但是,我需要在其他一些已定义的模式上运行查询。有人知道如何在上面的查询中添加模式信息吗?我不能从PostgreSQL文档
postgresql中有许多存储过程,出于某种原因,我需要在事务中运行许多过程,因此如果出现错误,它将回滚。
有办法这样做吗?
编辑1
我通过java运行它,由于某些原因,我不能从java进行事务处理,也不能运行查询字符串,只需存储过程。我其实在想做这样的程序
CREATE OR REPLACE FUNCTION ldt_pricing_rule_v1_api.start()
RETURNS VOID
LANGUAGE PLPGSQL
SECURITY DEFINER
AS $$
BEGIN
EXECUTE 'begin transaction'
RETUR
我试图在postgresql表中获得行的大小,我发现pg_column_size可以做到这一点,但它不适用于hibernate:
@Query("SELECT pg_column_size(t.*) as filesize FROM TABLE as t where name=:name")
int getSize(@Param("name") String name);
intellij给出了这个错误:
< operator >或预期的got '('‘)
我猜问题在于hibernate不支持特定的postgresql查询,它只支
我有一个PostgreSQL11DB中的数百个表,需要删除。
为了简化我的工作,我编写了如下函数:
CREATE OR REPLACE FUNCTION dropTable(
IN tab_name information_schema.sql_identifier,
OUT succ bool )
LANGUAGE 'plpgsql' AS
$func$
BEGIN
EXECUTE format('DROP TABLE IF EXISTS %s CASCADE;', tab_name );
-- How to get the executi
在运行这些Java/JDBC代码时,我会得到这个错误。有什么办法绕过它吗?
好像是在抱怨date_trunc函数中的参数?
org.postgresql.util.PSQLException:错误:语法错误位于或接近"$1"位置: 100
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryEx
ecutorImpl.java:2161)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(Qu
我只使用PostgreSQL。我没有计划要改变这一切。但是,我认识到其他人不是我,他们使用MySQL、MySQL、IBM、SQLite SQL、Oracle和ManyOthers SQL。我知道他们实际上有不同的名字。
我的查询看起来如下:
SELECT * FROM table WHERE id = $1;
UPDATE table SET col = $1 WHERE col = $2;
INSERT INTO table (a, b, c) VALUES ($1, $2, $3);
我的数据库包装器函数目前只支持PostgreSQL,方法是内部调用pg_*函数。
我也想支持“其他数据库”
PostreSQL的特性是,它通过在所有组行上运行谓词来过滤组。
例如,下表:
star_name | star_type | landed_upon
-----------+-----------+-------------
Mars | Planet | t
Venus | Planet | t
Rhea | Moons | f
Titan | Moons | t
这个every()查询:
SELECT star_type, max(star_name) example, COUNT(*)
FROM star
我想检查子查询的结果是否与数字列表相交。
我正在尝试使用这个查询
SELECT * FROM my_table mt WHERE
EXISTS (
(SELECT at.id FROM another_table at where at.some_id = mt.id)
INTERSECT
(1,2,3,4)
)
(1, 2, 3, 4)将在运行时由应用程序替代。
但我错了:
ERROR: syntax error at or near "1"
我怎么能解决这个问题?我在用PostgreSQL。
聚合和窗口函数的语法很混乱,这不起作用,
SELECT (max(x)+5) OVER ()
FROM generate_series(1,10) AS t(x);
虽然这是可行的
SELECT 5+max(x) OVER ()
FROM generate_series(1,10) AS t(x);
如果是算子是交换的的话,这很好,但是我试着把间隔除以秒 (在我的具体情况下,尽管我是围绕它工作的)。还有什么可以简化的吗。
SELECT (max(x)/5) OVER ()
FROM generate_series(1,10) AS t(x);
所以不需要另一个封装查询了吗?这是一个Postgr
我在解压缩这个postgreSQL查询时遇到了困难:
select name, revenue from (
select facs.name, sum(case
when memid = 0 then slots * facs.guestcost
else slots * membercost
end) as revenue
from cd.bookings bks
inner join cd.facilities facs
on b
如何在Java中进行这样的查询并获得结果:
SELECT filedata.num,st_area(ST_Difference(ST_TRANSFORM(filedata.the_geom,70066),filedata_temp.the_geom))
FROM filedata, filedata_temp
Where filedata.num=filedata_temp.num
或者,如果我通过这个查询在Postgres中创建过程,我认为会更好。
CREATE OR REPLACE FUNCTION get_geom_difference()
RETURNS void AS
$$
BEGI
是否可以将视图与SQL中的另一个表连接起来?如果是这样的话,是怎么做的?
我对Oracle db有一个查询,它有特定的字段。我需要在PostgreSQL上重新创建相同的查询,但是PostgreSQL查询中的一些数据来自一个视图.这个视图缺少信息。这是一个相当复杂的视图,所以我不想现在不使用它。
例如,在Oracle中,我这样做:
SELECT
d.dos_id,
trunc(d.dos_creation, 'MM') as Cohorte,
sum(v.ver_etude + v.ver_direct) as encaissé
from t_dossier d
left out
我正在使用Postgresql 11。
我在日志中发现了一个类似于下面的错误:
org.postgresql.util.PSQLException: ERROR: deadlock detected
Detail: Process 332091 waits for ShareLock on transaction 99896257; blocked by process 332093.
Process 332093 waits for ShareLock on transaction 99923910; blocked by process 332091.
Hint: See ser
我在PostgreSQL中有这个函数,但我不知道如何返回查询结果:
CREATE OR REPLACE FUNCTION wordFrequency(maxTokens INTEGER)
RETURNS SETOF RECORD AS
$$
BEGIN
SELECT text, count(*), 100 / maxTokens * count(*)
FROM (
SELECT text
FROM token
WHERE chartype = 'ALPHABETIC'
LIMIT maxTokens
) as
我正在将我的应用程序从MySQL迁移到PostgreSQL。在MySQL中,我使用了一个查询来根据我的需求计算特定表的内存大小,使用了下面的查询:
SELECT SUM(ROUND(((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024),2)) 'Size in MB' FROM INFORMATION_SCHEMA.TABLES where TABLE_NAME like 'table_name';
但我不能在PostgreSQL中做同样的事情。如果我运行的查询与它显示的相同,
ERROR: type "sum
一个sql请求在Postgresql中的执行时间是Oracle的10倍。如何使用Postgresql加速查询?
在此请求下:
select t1.c1, t1.c2 from MyTable t1
where t1.c3='string'
and t1.c2=(select max(t2.c2) from MyTable t2 where t2.c4=t1.c4);
完整的查询:
select t1.c1, t1.c2 from MyTable t1
left outer join Table t3
on t1.c1=t3.c1
where t1.c3='string&
我在PostgreSQL中执行以下查询时遇到了问题。
select *
from st_astext(st_pointn(texas_roads_gcs.geom from texas_roads_gcs,1))
在这里,我试图从名为"texas_roads_gcs“的表中的几何列(Geom)中获取点,但它不能正常运行。它给出了文件夹错误。
ERROR: syntax error at or near "from"
LINE 1: ...t * from st_astext(st_pointn(texas_roads_gcs.geom from texas...
我是PostgresSQL.新手,我尝试过
select * from employee where employee_name="elina";
但结果错误如下:
ERROR: column "elina" does not exist.
然后我尝试将双引号替换为单引号,如下所示:
select * from employee where employee_name='elina';
它的结果是fine..So在postgresql.If中我们不能在postgres查询中使用双引号,那么在postgreSQL中这个双引号有什么区别呢?
如果我在Postgresql中运行这些查询,是否会有任何性能差异?假设表有很多行。
SELECT c.name
FROM products as p
JOIN category as c on p.type = c.type
WHERE c.name = 'a';
SELECT a.name
FROM (
SELECT c.name
FROM products as p
JOIN category as c on p.type = c.type
) as a
WHERE a.name = 'a';
**已编辑
使用实体框架linq,像这样