ralfhackmann
Goto Top

Informix SE Tabelle alle Felder auf NULL prüfen

Hallo,

ich muss bei mehreren Tabellen in einer Informix SE Datenbank alle Felder auf NULL prüfen.

Ich bin hierbei folgendermaßen vorgegangen:

Ermitteln der Tabellenspalten:
select_spalten.sql:
SELECT colname FROM syscolumns
WHERE tabid = ( SELECT tabid FROM systables WHERE tabname = "fyar1sta" )

dbaccess meinedb select_spalten.sql >> ar1_spalte.txt

select_ar1_NULL.awk:
#!/bin/awk -f
{printf "SELECT artikel, %s FROM fyar1sta WHERE %s is null;\n", $1, $1 }

./select_ar1_NULL.awk ar1_spalte.txt > select_ar1_NULL.sql

Die Datei select_ar1_NULL.sql enthält jetzt für jedes Feld aus fyar1sta eine Zeile mit einer Select Abfrage, die auf NULL prüft.


Meine Vorgehensweise funktioniert grundsätzlich, jedoch würde mich interessieren, wie man dies mit einer gespeicherten Prozedur in Informix SE realisiert, wobei ich keinerlei Erfahrung mit SPL habe.

Gruss

Ralf

Content-Key: 339846

Url: https://administrator.de/contentid/339846

Printed on: April 26, 2024 at 16:04 o'clock

Member: RalfHackmann
RalfHackmann Jun 07, 2017 at 12:28:09 (UTC)
Goto Top
Ich mich zwischenzeitlich in SPL eingelesen und folgende Prozedur Procedure_pruefen_NULL.sql erstellt:
CREATE PROCEDURE pruefen_NULL (v_table_name CHAR(30))

    DEFINE v_column CHAR(30);

    FOREACH columns_cur FOR

        SELECT colname INTO v_culumn
        FROM syscolumns
        WHERE tabid = ( SELECT tabid
                        FROM systables
                        WHERE tabname = v_table_name );

        SELECT artikel, v_column
        FROM v_table_name
        WHERE CURRENT OF columns_cur
        AND v_column is null;

        UPDATE v_table_name
        SET v_column = ''  
        WHERE CURRENT OF columns_cur
        AND v_column is null;


    END FOREACH;

END PROCEDURE;

bei

dbaccess meinedb Procedure_pruefen_NULL.sql

kommt folgende Fehlermeldung:

Database selected.


  201: A syntax error has occurred.
Error in line 11
Near character position 54

Database closed.
Mitglied: 133417
133417 Jun 07, 2017 updated at 16:40:23 (UTC)
Goto Top
Keine Ahnung von Informix , aber:
INTO v_culumn
Schreibfehler?

Gruß
Member: RalfHackmann
RalfHackmann Jun 08, 2017 at 06:18:43 (UTC)
Goto Top
Ich habe den Schreibfehler berichtigt, jedoch tritt der Syntaxfehler immer noch auf.
Mitglied: 133417
133417 Jun 08, 2017 updated at 08:08:15 (UTC)
Goto Top
Dann häng dich rein, ein Meister fällt nicht vom Himmel, einfach dran bleiben.