Commit e4bc4bfe authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

SQL utile: table de recherche

parent e51a1057
Loading
Loading
Loading
Loading
Loading
+15 −6
Changes for data/SQL/sygal/recherche.sql: 15 added lines, 6 removed lines.
Original line number Diff line number Diff line
@@ -10,21 +10,30 @@ create table INDIVIDU_RECH (
);
-- contenu initial
insert into INDIVIDU_RECH(ID, HAYSTACK)
  select
    id,
    trim(UNICAEN_ORACLE.str_reduce(NOM_USUEL || ' ' || NOM_PATRONYMIQUE || ' ' || PRENOM1 || ' ' || SOURCE_CODE))
  select id, individu_haystack(NOM_USUEL, NOM_PATRONYMIQUE, PRENOM1, EMAIL, SOURCE_CODE)
  from INDIVIDU;

-- ou màj contenu
update INDIVIDU_RECH ir set HAYSTACK = (
  SELECT individu_haystack(NOM_USUEL, NOM_PATRONYMIQUE, PRENOM1, EMAIL, SOURCE_CODE)
  from individu i
  where i.id = ir.id
);

-- fonction haystack
create or replace function individu_haystack(
  NOM_USUEL varchar2,
  NOM_PATRONYMIQUE varchar2,
  PRENOM1 varchar2,
  EMAIL varchar2,
  SOURCE_CODE varchar2) RETURN VARCHAR2
AS
  BEGIN
    return trim(UNICAEN_ORACLE.str_reduce(NOM_USUEL || ' ' || NOM_PATRONYMIQUE || ' ' || PRENOM1 || ' ' || SOURCE_CODE));
    return trim(UNICAEN_ORACLE.str_reduce(
      NOM_USUEL || ' ' || PRENOM1 || ' ' || NOM_PATRONYMIQUE || ' ' || PRENOM1 || ' ' ||
      PRENOM1 || ' ' || NOM_USUEL || ' ' || PRENOM1 || ' ' || NOM_PATRONYMIQUE || ' ' ||
      EMAIL || ' ' ||
      SOURCE_CODE
    ));
  END;


@@ -34,7 +43,7 @@ CREATE TRIGGER INDIVIDU_RECH_UPDATE
  AFTER DELETE OR INSERT OR UPDATE OF NOM_USUEL, NOM_PATRONYMIQUE, PRENOM1, PRENOM2, PRENOM3, SOURCE_CODE ON INDIVIDU
  FOR EACH ROW
  DECLARE
    v_haystack CLOB := individu_haystack(:new.NOM_USUEL, :new.NOM_PATRONYMIQUE, :new.PRENOM1, :new.SOURCE_CODE);
    v_haystack CLOB := individu_haystack(:new.NOM_USUEL, :new.NOM_PATRONYMIQUE, :new.PRENOM1, :new.EMAIL, :new.SOURCE_CODE);
  BEGIN
    IF INSERTING THEN
      insert into INDIVIDU_RECH(ID, HAYSTACK) values (:new.ID, v_haystack);