Michał Kowalski Bazy danych
Temat: [Oracle] Czyszczenie kilku danych tekstowych jednocześnie...
Witam,w tabeli z klientami mam ok 10 pól w których dane muszę "oczyścić" funkcja TRIM.
Robię to w ten sposób:
UPDATE cct_clients cli SET cli.CLI_LAST_NAME=(select trimCLI_LAST_NAME) from cct_clients cli2 where cli.cli_id = cli2.cli_id) where cli.CLI_LAST_NAME like cli.CLI_LAST_NAME like ' %' or cli.CLI_LAST_NAME like '% ';
commit;
UPDATE cct_clients cli SET cli.CLI_First_NAME=(select trimCLI_LAST_NAME) from cct_clients cli2 where cli.cli_id = cli2.cli_id) where cli.CLI_first_NAME like cli.CLI_first_NAME like ' %' or cli.CLI_first_NAME like '% ';
commit;
UPDATE cct_clients cli SET cli.pole3=(select trimCLI_LAST_NAME) from cct_clients cli2 where cli.cli_id = cli2.cli_id) where cli.pole3 like cli.pole3 like ' %' or cli.pole3 like '% ';
commit;
...
Mam kilka pytań:
1. Czy można zrobić to w ten sposób, żeby nie było potrzebne tyle przebiegów po całej tabeli ile pól mam zamiar czyścić? Inaczej, czy w jednym przebiegu można update-ować więcej niż jedno pole?
Zamiast polami szło by wierszami, po kolei wiersz po wierszu sprawdzane byłby wszystkie pola na obecność spacji.
2. Czy konieczny jest warunek pole3 like pole3 like ' %' or pole3 like '% ', czy bez niego zostałyby nadpisane wszystkie wartości w kolumnie (polu) bez względu czy się zmieniły czy nie?
(Nie chce eksperymentować na jej całej długości)
3. Czy dodawanie warunku pole3 like pole3 like ' %' or pole3 like '% ' nie ogranicza tego co mogłaby dać funkcja Trim, mam na myśli czy funkcja Trim mogłaby wyczyścić coś ponad spacje?