Tag: plpgsql
PL/pgSQL ist die Standard-prozedurale Sprache für das PostgreSQL. Fragen über PL/pgSQL sollte wohl tagged „PostgreSQL“.
2
Antworten
Arbeite ich an der Umwandlung etwas, das von Oracle auf PostgreSQL. In der Oracle-Datei gibt es eine Funktion: instr(string,substring,starting point,nth location) oder, wie es in meiner Datei instr(string,chr(10),instr(string,substring),1) In PostgreSQL diese nicht vorhanden, also habe ich mir
6
Antworten
die Runde(numeric,integer) - Funktion in PostgreSQL nur Runden bis: round(cast (41.0255 as numeric),3) ==> 41.026 Da brauchen wir ein round-Funktion gibt 41.025 und (ganz überraschend) gibt es nicht so eine Funktion in PostgreSQL (wir verwenden 9.1.5), wir
2
Antworten
Ich habe eine Tabelle years (1. Januar jedes Ohr). Ich möchte eine Funktion erstellen, die nimmt jedes dieser Jahre und führt eine Abfrage in einer anderen Tabelle, die Anzahl der Zeilen, dass die Zugehörigkeit zu diesem Jahr.
3
Antworten
Bin ich zu schreiben versucht, eine Schleife mit PL/pgSQL (PostgreSQL 9.3) - Funktion, die eine Tabelle zurückgibt. Ich verwendet RETURN NEXT; ohne Parameter nach jeder Abfrage in die Schleife folgende Beispiele gefunden wie plpgsql Fehler "ZURÜCK WEITER
1
Antworten
Dies ist meine Funktion: DECLARE f_ids integer := '{}'; BEGIN SELECT INTO f_ids "fileId" FROM "tbFiles" WHERE "size" <= $2 AND "size" >=$1 ; RETURN f_ids; END; Sollte diese Funktion zurück bigint, aber wenn ich ihn starten
5
Antworten
Ich habe eine trigger-Funktion für eine Tabelle test mit folgenden code-snippet: IF TG_OP='UPDATE' THEN IF OLD.locked > 0 AND ( OLD.org_id <> NEW.org_id OR OLD.document_code <> NEW.document_code OR -- other columns ... ) THEN RAISE EXCEPTION 'Message';
2
Antworten
Ich bin neu in der Postgres-Trigger. Ich sah ein Beispiel von Triggern, die auf www.postgresql.org und ich Verstand nicht, was LANGUAGE plpgsql VOLATILE COST 100; am Ende des trigger-Funktion. Was ist der nutzen dieser Linie? Ich sah
3
Antworten
Ich habe eine Tabelle namens Zuordnungen. Ich würde gerne in der Lage zu Lesen/schreiben, um all die Spalten in dieser Tabelle mit Zuordnungen.Spalte oder Hausaufgaben.Spalte, wie kann ich dies tun? Ich weiß, das ist nicht etwas, was
3
Antworten
Im Grunde, zumindest für den proof-of-concept, ich möchte eine Funktion, wo ich laufen kann: WÄHLEN Sie res('table_name'); und diese geben mir die Ergebnisse von SELECT * FROM table_name;. Das Problem, das ich habe ist das schema...in der
3
Antworten
Bin ich durch ein 2-Parameter eine PL/pgSQL-Funktion. Hier ist die Abfrage: SELECT * FROM table WHERE col1 = param1 AND col2 = param2 Beide Parameter kann NULL sein, in welchem Fall der entsprechende Ausdruck sollte entfernt werden
2
Antworten
Muss ich erstellen Sie eine Funktion in Postgres und einer Variablen, die ich erkläre ist eine vordefinierte text-array, aber ich kenne nicht die syntax, um seine Werte. Dies ist, was ich habe, so weit: CREATE OR REPLACE
3
Antworten
Ich habe eine Tabelle "UserState" mit folgenden Feldern: id, userid, ctime, Zustand, endtime. Ich habe eine einfache Abfrage: SELECT userid FROM "UserState" WHERE ctime>'2014-07-14'::timestamp UND ich habe eine plpgsql-Funktion, die nehmen müssen, das Ergebnis dieser Abfrage als
2
Antworten
In der SQL Server 2005-T-SQL-Sprache kann ich shred XML-Wert die folgende Weise: SELECT t.c.value('./ID[1]', 'INT'), t.c.value('./Name[1]', 'VARCHAR(50)') FROM @Xml.nodes('/Customer') AS t(c) wo @Xml ist ein xml-Wert so etwas wie '<Customer><ID>23</ID><Name>Google</Name></Customer>' Kann mir jemand helfen, das gleiche Ergebnis
2
Antworten
Diese Funktion erfolgreich kompiliert wurde: CREATE OR REPLACE FUNCTION FieldValidations1(tbl_name varchar(35),col_name varchar(25), error_flag varchar(3)) RETURNS void AS $$ declare cust_rec RECORD; BEGIN execute format($sel$ FOR cust_rec IN SELECT %I FROM %s LOOP RAISE NOTICE 'inside loop'; END
3
Antworten
Ich bin vor ein deadlock-problem aus einer PL/pgSQL-Funktion in meiner PostgreSQL-Datenbank. Finden Sie die SQL-Anweisung im code-block (nur Beispiel): BEGIN UPDATE accounts SET balance = 0 WHERE acct_name like 'A%'; UPDATE accounts SET balance = balance +
2
Antworten
So erstellen Sie eine Funktion, die als argument integer - parameter und die Ausführung der Abfrage mit IN-Klausel mit diesem parameter in der Schleife. In der Schleife möchte ich Nächstes ausgeführt werden soll auswählen, und das
3
Antworten
Ich bin versucht zu schreiben Sie eine PL/pgSQL-Funktion mit optionalen Argumenten. Es führt eine Abfrage basierend auf einer gefilterten Gruppe von Datensätzen (falls angegeben), sonst führt eine Abfrage auf die gesamten Daten in einer Tabelle. Beispielsweise (PSEUDO-CODE):
1
Antworten
Habe ich eine stored procedure in PostgreSQL 8.4 andere gespeicherte Prozedur aufruft, die je auf der integer-Wert als parameter übergebenen. Diese gespeicherten Prozeduren aufgerufen werden, so dass Sie zurückkehren sollte, eine Beziehung mit einer integer-Spalte. Das problem,
2
Antworten
Datenbank idd-Besitzer ist die Rolle idd_owner. Datenbank 2 Daten-schemas: public und firma1. Benutzer können direkt oder indirekt zugewiesenen Rechte in dieser Datenbank und Objekten. Benutzer ist nicht der Besitzer eines Objekts. Es hat nur Rechte gewährt. Wie
1
Antworten
How to raise error aus PostgreSQL SQL-Anweisung, wenn eine bestimmte Bedingung erfüllt wird? Ich habe versucht, folgenden code bekam aber Fehlermeldung. CREATE OR REPLACE FUNCTION "exec"(text) RETURNS text AS $BODY$ BEGIN EXECUTE $1; RETURN $1; END; $BODY$
2
Antworten
Dies klingt vielleicht wie eine wirklich dumme Frage, aber wie kann ich eine variable deklarieren, die für verwendet werden in einer PostgreSQL-9.3-Abfrage? CREATE or replace FUNCTION public.test() returns int4 AS $BODY$ DECLARE cod_process bigint :=30001; cod_instance bigint
1
Antworten
Habe ich die Dokumentation von postgresql-Trigger, aber es scheint nur zeigen Beispiele für Trigger auf Zeilenebene, aber ich kann nicht finden, ein Beispiel für einen trigger auf anweisungsebene. In allem, es ist nicht ganz klar, wie die
2
Antworten
Ich versuche, verwenden Sie Cursor für eine Abfrage, die joins von mehreren Tabellen. Ich habe gesehen, dass bei oracle gibt es eine cursor-basierten Datensatz. Wenn ich versuche, das gleiche für Postgres, wirft es einige Fehler. Wie kann
2
Antworten
Habe ich diese Funktion in meine Datenbank: CREATE OR REPLACE FUNCTION "insertarNuevoArticulo"(nombrearticulo character varying, descripcion text, idtipo integer, idfamilia bigint, artstock integer, minstock integer, maxstock integer, idmarca bigint, precio real, marcastock integer) RETURNS boolean AS $BODY$ DECLARE
3
Antworten
Möchte ich ein array von n Abmessungen und Rückgabe eingestellt mit den Zeilen des arrays von n-1 Dimensionen. Zum Beispiel, nehmen Sie die array ARRAY[[1,2,3], [4,5,6], [7,8,9]] und zurückgeben eines Satzes {1,2,3}, {4,5,6}, {7,8,9}. Mit unnest gibt
2
Antworten
In PostgreSQL, würde ich mag, um eine sichere erstellen-wrapping-Mechanismus liefert leeres Ergebnis, wenn eine Ausnahme Auftritt. Betrachten Sie das folgende: SELECT * FROM myschema.mytable; Ich tun konnte, die sichere Verpackung, die in der client-Anwendung: try { result
2
Antworten
Kann mir jemand bitte erklären, warum BEGEHEN in dieser Funktion gibt AUSNAHME ? DECLARE XNar CURSOR (forDATE Varchar) IS SELECT NARUCENO, ISPORUKA_ID FROM XDATA_NARUDZBE WHERE TO_CHAR(XDATA_NARUDZBE.DATUM, 'DD.MM.YYYY') = forDATE; LastDate DATE; OutResult INTEGER; curNAR NUMERIC; curISP VARCHAR;
3
Antworten
Möchte ich ausführen einer dynamischen SQL-Anweisung, mit deren Rückgabewert wird die Voraussetzung für eine IF Aussage: IF EXECUTE 'EXISTS (SELECT 1 FROM mytable)' THEN Diese generiert den Fehler ERROR: type "execute" does not exist. Ist es möglich,
1
Antworten
Habe ich eine situation, wo ich zurückkehren möchten, die einen join zwischen zwei Ansichten. und das ist eine Menge von Spalten. Es war ziemlich einfach im sql-server. Aber in PostgreSQL wenn ich den join. Ich bekomme die
5
Antworten
Ich bin neu in PostgreSQL und bin mit dem Abfrage-tool PGAdmin. Ich bin versucht zu laufen pgsql-Abfragen, die Variablen verwenden, aber ich kann nicht scheinen, um die syntax Recht. Hier ist ein Beispiel-Abfrage, gibt einen syntax-Fehler: DECLARE
2
Antworten
Ich hab einfach eine Tabelle enthält eine Liste der Länder und deren ISO-Ländercodes. Ich bin das einwickeln der Abfrage in einer gespeicherten Prozedur (aka-Funktion), wie: CREATE OR REPLACE FUNCTION get_countries( ) RETURNS setof record AS $$ SELECT
1
Antworten
Dieser aufgefordert wurde, mehrere Male hier und hier, aber keine der Antworten, die geeignet sind, in meinem Fall, weil ich nicht ausführen wollen meine update-Anweisung in einem PL/PgSQL-Funktion und verwenden Sie GET DIAGNOSTICS integer_var = ROW_COUNT. Habe
3
Antworten
Möchte ich löschen Sie alle Tabellen, welche die gleiche Präfix ('supenh_agk') aus der gleichen Datenbank mit einem sql-Befehl/query. Möglich, Duplikat der Wie man mehrere Tabellen in PostgreSQL mit einer wildcard InformationsquelleAutor Roy | 2014-12-22
3
Antworten
Ich versuche, löschen Sie alle Daten, die zu einer Benutzer-id aus einer Datenbank. Gibt es eine Tabelle, die alle Spiele (jeder spielte durch 3 Spieler): # select * from pref_games where gid=321; gid | rounds | finished
2
Antworten
Wie kann ich eine gespeicherte Prozedur schreiben, die enthält eine dynamisch erstellte SQL-Anweisung, die ein ResultSet zurückgibt? Hier ist mein Beispielcode: CREATE OR REPLACE FUNCTION reporting.report_get_countries_new ( starts_with varchar, ends_with varchar ) RETURNS TABLE ( country_id integer,
2
Antworten
Möchte ich ausführen, einige pgScript direkt von der pgAdmin - editor-UI. FOR i IN 1..10 LOOP PRINT i; -- i will take on the values 1,2,3,4,5,6,7,8,9,10 within the loop END LOOP; Aber ich habe immer [ERROR ]
3
Antworten
Sind wir der Neugestaltung schema für die Tabelle in der postgres. Es verwendet, um einen linker-Tabelle, um die beiden Tabellen partner und advertiser der name partner_advertiser da waren wir unter der Annahme einer viele-viele-Beziehung zwischen partner und
3
Antworten
Habe ich dieses PL/pgSQL - Funktion, die zurück müssen einige Benutzer Informationen. CREATE OR REPLACE FUNCTION my_function( user_id integer ) RETURNS TABLE( id integer, firstname character varying, lastname character varying ) AS $$ DECLARE ids character varying;
3
Antworten
Ich habe eine PostgreSQL-Funktion zur Berechnung der Zeitdifferenz: CREATE OR REPLACE FUNCTION testDateDiff () RETURNS int AS $BODY$ DECLARE startDate TIMESTAMP; DECLARE endDate TIMESTAMP; DECLARE diffDatePart int ; BEGIN Select evt_start_date From events Where evt_id = 5
3
Antworten
Brauche ich zum senden von Daten über das http-Protokoll (GET-oder POST-request) von der Funktion bzw. des triggers. Ist es möglich? InformationsquelleAutor im4LF | 2010-07-24
3
Antworten
Ich würde gerne eine sql-Abfrage erstellen (oder plpgsql), die md5() alle Zeilen unabhängig von Typ. Aber unten, wenn null ist dann der hash ist null: UPDATE thetable SET hash = md5(accountid || accounttype || createdby || editedby);
1
Antworten
Ich suchte danach ohne viel Glück... ich hoffe Ihr könnt mir helfen... Dies ist mein PL/pgSQL-Funktion: CREATE OR REPLACE FUNCTION crearempresa( _id_empresa integer DEFAULT NULL::integer, _ci_rif character varying DEFAULT NULL::character varying, _nombre character varying DEFAULT NULL::character varying,
2
Antworten
Hier ist meine Funktion Erklärung und ein Teil des Körpers: CREATE OR REPLACE FUNCTION access_update() RETURNS void AS $$ DECLARE team_ids bigint; BEGIN SELECT INTO team_ids "team_id" FROM "tmp_team_list"; UPDATE "team_prsnl" SET "updt_dt_tm" = NOW(), "last_access_dt_tm" =
2
Antworten
Ist es möglich, Rückkehr mehrere Ergebnissätze von verschiedenen Arten von postgres-Funktion? Etwas wie: CREATE OR REPLACE FUNCTION getUserById() RETURNS setof ??? AS $$ BEGIN return query select id, name /* and other columns */ from users where
1
Antworten
Ich würde gerne wissen, wie Sie eine dynamische Abfrage innerhalb einer Funktion. Ich habe versucht, viele Möglichkeiten, jedoch, wenn ich versuche zu kompilieren meiner Funktion eine Nachricht SQL-42601 angezeigt. Den code, den ich verwenden: CREATE OR REPLACE
1
Antworten
In einer plpgsql-Funktion, wie können mehrere Zeilen und Spalten ausgewählt werden, die in einem Datensatz variable? Zum Beispiel, ich möchte SELECT mehrere Instanzen von zwei Spalten (yearinteger und value) in eine record-variable (yearvalues). *BEARBEITEN - der folgende
1
Antworten
Ich versuche zu erstellen, die eine Funktion in plpgsql wie: CREATE OR REPLACE FUNCTION select_left_photo_ids(in_photo_id bigint, in_album_id bigint, in_limit int) RETURNS SETOF bigint AS $$ DECLARE photo_count int; DECLARE photo_ids bigint; BEGIN SELECT photo_id INTO STRICT photo_ids
2
Antworten
Ich versuche zu schreiben dateadd() Funktion mit PL/PgSQL. Ich möchte in der Lage sein, um hinzuzufügen, was von Sekunden bis hin zu Jahren zu einem Datum/Zeitstempel versehen. Kopfsteinpflaster zusammen eine Funktion (von snippets etc online bezogen), und
3
Antworten
CREATE OR REPLACE FUNCTION msgfailerror() RETURNS trigger AS ' BEGIN IF NEW.noces< new.first_column THEN RAISE EXCEPTION 'cannot have a negative salary'; END IF; return new; END' LANGUAGE plpgsql Trigger create trigger msgfail before insert on first for
3
Antworten
Ich versuche, den Dreh raus mit temp-Tabellen: CREATE OR REPLACE FUNCTION test1(user_id BIGINT) RETURNS BIGINT AS $BODY$ BEGIN create temp table temp_table1 ON COMMIT DELETE ROWS as SELECT table1.column1, table1.column2 FROM table1 INNER JOIN -- ............ if