Received: from maia.hub.org (maia-2.hub.org [200.46.204.251]) by mail.postgresql.org (Postfix) with ESMTP id 1AE581336FA7 for ; Wed, 15 Dec 2010 21:22:28 -0400 (AST) Received: from mail.postgresql.org ([200.46.204.86]) by maia.hub.org (mx1.hub.org [200.46.204.251]) (amavisd-maia, port 10024) with ESMTP id 50017-04 for ; Thu, 16 Dec 2010 01:22:21 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-vw0-f46.google.com (mail-vw0-f46.google.com [209.85.212.46]) by mail.postgresql.org (Postfix) with ESMTP id A66021336971 for ; Wed, 15 Dec 2010 21:22:20 -0400 (AST) Received: by vws16 with SMTP id 16so1194044vws.19 for ; Wed, 15 Dec 2010 17:22:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from :user-agent:mime-version:to:subject:content-type :content-transfer-encoding; bh=I40jCgratd9q+C2lYvzRlhZHRRnIb/k/xMKLFcfYjKw=; b=meJDncwR6l638jtoInTy9ddwMOBjcN6NPhcv3dZ+mNUhZUVScIUE5qhbFhreOdbxog 5y4sYF2EKz+dD+d/rmPDZavhlzt14CnkSaJblI2RF5/01TFCLOPU3L5SoqxiHFKEtiCH mGMfpGTb53Td49qOCvW075+ps2w1Q5dmivfkA= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:subject :content-type:content-transfer-encoding; b=e4rhLh/QDFAnjVg7J/hXAwj/ww79EfSuRXAOC2cXt2ZtijXx+OcNulXTE8/Wd9NK8R tJO1lr1HU4j4R+z+bk8+TtUyP5s2ga5yTxARM3m5WrAmqS/YZp55w+WF3pB6XjFe/uY3 ZNsA2Z1EmQ15SuT8KiTedDAgf5Su8cz39QpAk= Received: by 10.220.177.72 with SMTP id bh8mr1907443vcb.267.1292462540812; Wed, 15 Dec 2010 17:22:20 -0800 (PST) Received: from [192.168.1.10] ([190.178.74.249]) by mx.google.com with ESMTPS id r11sm759743vbx.11.2010.12.15.17.22.19 (version=SSLv3 cipher=RC4-MD5); Wed, 15 Dec 2010 17:22:20 -0800 (PST) Message-ID: <4D0969C4.5050205@gmail.com> Date: Wed, 15 Dec 2010 22:22:12 -0300 From: serviciotdf User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.13) Gecko/20101208 Thunderbird/3.1.7 MIME-Version: 1.0 To: pgsql-sql@postgresql.org Subject: Translate Function PL/pgSQL to SQL92 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: Maia Mailguard 1.0.1 X-Spam-Status: No, hits=-2.589 tagged_above=-5 required=5 tests=BAYES_00=-1.9, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, T_TO_NO_BRKTS_FREEMAIL=0.01 X-Spam-Level: X-Archive-Number: 201012/75 X-Sequence-Number: 34911 Hello, I have a Function in PL/pgSQL and I need to translate it to SQL92, but I'm stuck. ### CREATE OR REPLACE FUNCTION pruebas(varchar, varchar, integer) RETURNS SETOF personal AS $delimiter$ BEGIN PERFORM id from documentos WHERE descripcion = $1; IF NOT FOUND THEN INSERT INTO documentos(descripcion) VALUES($1); END IF; INSERT INTO personal(nombre,idtipodocumento,numdoc) VALUES($2, (SELECT id from documentos WHERE descripcion = $1), $3); END; $delimiter$ LANGUAGE plpgsql; ### Tables CREATE TABLE documentos id serial NOT NULL, descripcion character varying(60), CONSTRAINT pkdocumentos PRIMARY KEY (id) CREATE TABLE personal id serial NOT NULL, nombre character varying(60), idtipodocumento smallint NOT NULL, numdoc integer, CONSTRAINT pkpersonal PRIMARY KEY (id), CONSTRAINT fkpdoc FOREIGN KEY (idtipodocumento) REFERENCES documentos (id) MATCH SIMPLE ON UPDATE CASCADE ON DELETE NO ACTION, CONSTRAINT unqnumdoc UNIQUE (idtipodocumento, numdoc) Thanks and greetings for all Marcelo