sql >> Database teknologi >  >> RDS >> PostgreSQL

Kan PostgreSQL udføre en joinforbindelse mellem to SQL Server-lagrede procedurer?

  1. Kan PostgreSQL udføre en joinforbindelse mellem to ~procedurer, hvor kolonnerne ikke er kendt før runtime?

Det grundlæggende svar er enkelt, fordi der i øjeblikket ikke er nogen lagrede procedurer i Postgres (op til Postgres 10), kun funktioner - som giver næsten, men ikke helt den samme funktionalitet, som du har udstukket i spørgsmålet.

Og enhver funktion kan bruges i FROM klausul af en SELECT forespørgsel som enhver anden tabel.

Opdatering:
SQL-procedurer ("lagrede procedurer") introduceres med Postgres 11.
Manualen til CREATE PROCEDURE .

SQL selv kræver at kende returtypen ved kørsel. Der er en grænse-case :du kan erklære returtypen med funktionskaldet ved at bruge polymorfe typer . Detaljerede instruktioner her (det sidste kapitel er mest relevant for dig):

  • Refaktorer en PL/pgSQL-funktion for at returnere output fra forskellige SELECT-forespørgsler
  1. Kan det gøre det samme, undtagen at bruge lagrede procedurer, der findes i en ekstern tredjepartsdatabase (måske via udenlandske dataindpakninger eller en anden mekanisme)?

Det er et NEJ også baseret på samme princip. Hvis du bruger udenlandske tabeller, skal du angive en klart defineret returtype på den ene eller den anden måde.

Du måske være i stand til at samle hele rækken fra en SQL-Server-stored-procedure til en enkelt tabulator-separeret tekstrepræsentation, men så (udover at være fejltilbøjelig og ineffektiv) har du en enkelt kolonne og har brug for metainformationen, der definerer individuelle kolonner den ene eller den anden måde at udtrække kolonner - catch 22.




  1. streng bogstavelig talt for lang - hvordan tildeles lange xml-data til clob-datatype i oracle 11g r2

  2. Sådan udfører du grupperet rangering i MySQL

  3. Oracle Data Mining (ODM) – Installation og opsætning

  4. Tæl alle objekter i din database