\p CREATE TABLE Produit
CREATE CACHED TABLE "Produit"
  ( ID INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT NULL
  , nom VARCHAR(100) NOT NULL
  , unité VARCHAR(100)
  , quantité DECIMAL(100,3) DEFAULT 1.000 NOT NULL
  , conditionnement VARCHAR(100)
  , CONSTRAINT "PK_Produit" PRIMARY KEY(ID)
  , CONSTRAINT "La combinaison (nom, quantité, conditionnement) d'un produit doit être unique"
      UNIQUE (nom, quantité, conditionnement)
  );

DROP FUNCTION choisirUnProduit IF EXISTS CASCADE;
CREATE FUNCTION choisirUnProduit()
  RETURNS TABLE(nom_complet VARCHAR(100), ID INTEGER)
  READS SQL DATA
  BEGIN ATOMIC
    RETURN TABLE
      (SELECT nom || ' ('
                  || RTRIM(RTRIM(TO_CHAR(quantité),'0'),'.')
                  || nvl(unité,'')
                  || ')'
                  AS nom_complet
            , ID
      FROM "Produit"
      );
  END;
.;
