AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / user-245433

eliangius's questions

Martin Hope
eliangius
Asked: 2022-12-24 09:17:29 +0800 CST

Definir constante personalizada no script Postgres

  • 5

No Postgres 15, como podemos definir constantes que pertencem à lógica de negócios em vez de definições de configuração do banco de dados? Eu gostaria de defini-los dentro de scripts SQL em vez de passar pelo psql -v MY_CONSTANT=123comando e não me importo se eles persistirem apenas para a sessão.

Nas versões anteriores, eu me safava discretamente com a seguinte sintaxe:

SET MY_CONSTANT TO 123;     -- declared
CALL my_func(:MY_CONSTANT); -- used

Que da documentação parece ser destinado a modificar as configurações conhecidas do banco de dados e explica por que estou encontrando problemas como este:

my_script.sql:2: ERROR:  unrecognized configuration parameter "my_constant"
postgresql
  • 3 respostas
  • 47 Views
Martin Hope
eliangius
Asked: 2022-02-11 18:26:22 +0800 CST

iterar através dos valores de enumeração do Postgres?

  • 0

Eu tenho um tipo enumerado Postgres usado para descrever a classe de nó (sensível à ordem) de uma tabela de relacionamento de origem/destino. A questão é: como posso buscar dinamicamente o próximo valor (se houver) de uma instância de enumeração?

CREATE TYPE MyEnum AS ENUM ('level1', 'level2', 'level3');

SELECT dst_type, dst_id
FROM my_relationships
WHERE src_type::MyEnum = next(dst_type::MyEnum)      -- does not work
-- WHERE src_type::MyEnum = dst_type::MyEnum + 1     -- does not work
AND src_id = 'd4fc1d5d-b054-d37c-4e80-2c04a6b3dbf8';
postgresql enum
  • 1 respostas
  • 242 Views
Martin Hope
eliangius
Asked: 2021-12-30 07:48:56 +0800 CST

Passe argumentos de tipo de conversão para procedimento com formato de execução

  • 0

Eu preciso criar várias visualizações em dados geoespaciais, cada uma explicitamente lançada para a geometria correta e gostaria de criar um procedimento auxiliar para fazer isso assim:

CREATE PROCEDURE create_view_events(
  view_name TEXT, event_type TEXT, geo_type TEXT
) LANGUAGE plpgsql AS $$
BEGIN
  EXECUTE FORMAT('
     CREATE VIEW %I AS
     SELECT
       id,
       geom::%I AS geom   -- casting required, but how?
     FROM events
     WHERE type = %L
  ', view_name, geo_type, event_type);
END $$;
CALL create_view_events('events_viewX', 'X', GEOMETRY(POINT, 3347));

Executar manualmente a CREATE VIEWinstrução com a conversão substituída para geom::GEOMETRY(POINT, 3347) AS geomfunciona e executar o procedimento sem a conversão também funciona. No entanto, chamar através do procedimento como está gera esse erro, não sei o que está acontecendo.

ERROR: missing FROM-clause entry for table "GEOMETRY(POINT, 3347)"
  Where: PL/pgSQL function create_view_events(text,text,text) line 7 at EXECUTE
postgresql postgis
  • 1 respostas
  • 30 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve