pumapc
07-01-2015, 15:42
Ciao a tutti,
mi servirebbe un aiuto su un check che devo fare su dei dati inseriti in una tabella (DB Oracle) e credo che il modo più semplice è quello di fare uno script PL/SQL.
Ho una tabella con i seguenti campi:
URL
SITE_ID
CREATION_TIME
DELETED
LAST_MOD_TIME
DESCRIPTION
MAIL_FROM
TIMEZONE_ID
Il controllo che dovrei fare è praticamente il seguente:
Per ogni URL verificare che ci siano l'url http://nome_url e l'url https://nome_url; inoltre se c'è solo l'url https mi deve dare errore in caso contrario, se è presente solo l'url http è OK.
Successivamente se è presente la coppia degli url (http e https dello stesso nome_url) devo verificare che gli altri campi dei due record (dello stesso nome_url) siano uguali, in caso di qualche disallineamento devo estrarre quali URL sono disallineati.
Come potrei fare?
Io ho iniziato a creare questa bozza di PL-SQL ma mi estrae soltanto per ora gli url doppi, ma poi non riesco a fare gli altri check
SET SERVEROUTPUT ON;
DECLARE
CURSOR CSCHEMA IS
SELECT count(*) AS count_url, REPLACE(substr(URL, 8), '/', '') as url_name_complete, site_id
FROM table_url
group by REPLACE(substr(URL, 8), '/', ''), SITE_ID
order by 2;
RSCHEMA CSCHEMA%ROWTYPE;
BEGIN
SYS.DBMS_OUTPUT.PUT_LINE('START - CHECK URL');
OPEN CSCHEMA;
LOOP
FETCH CSCHEMA INTO RSCHEMA;
EXIT WHEN CSCHEMA%NOTFOUND;
IF (RSCHEMA.COUNT_URL = 2) THEN
SYS.DBMS_OUTPUT.PUT_LINE('URL: ' || RSCHEMA.url_name_complete );
END IF;
END LOOP;
CLOSE CSCHEMA;
SYS.DBMS_OUTPUT.PUT_LINE('END - CHECK URL');
END;
/
Grazie mille in anticipo.
mi servirebbe un aiuto su un check che devo fare su dei dati inseriti in una tabella (DB Oracle) e credo che il modo più semplice è quello di fare uno script PL/SQL.
Ho una tabella con i seguenti campi:
URL
SITE_ID
CREATION_TIME
DELETED
LAST_MOD_TIME
DESCRIPTION
MAIL_FROM
TIMEZONE_ID
Il controllo che dovrei fare è praticamente il seguente:
Per ogni URL verificare che ci siano l'url http://nome_url e l'url https://nome_url; inoltre se c'è solo l'url https mi deve dare errore in caso contrario, se è presente solo l'url http è OK.
Successivamente se è presente la coppia degli url (http e https dello stesso nome_url) devo verificare che gli altri campi dei due record (dello stesso nome_url) siano uguali, in caso di qualche disallineamento devo estrarre quali URL sono disallineati.
Come potrei fare?
Io ho iniziato a creare questa bozza di PL-SQL ma mi estrae soltanto per ora gli url doppi, ma poi non riesco a fare gli altri check
SET SERVEROUTPUT ON;
DECLARE
CURSOR CSCHEMA IS
SELECT count(*) AS count_url, REPLACE(substr(URL, 8), '/', '') as url_name_complete, site_id
FROM table_url
group by REPLACE(substr(URL, 8), '/', ''), SITE_ID
order by 2;
RSCHEMA CSCHEMA%ROWTYPE;
BEGIN
SYS.DBMS_OUTPUT.PUT_LINE('START - CHECK URL');
OPEN CSCHEMA;
LOOP
FETCH CSCHEMA INTO RSCHEMA;
EXIT WHEN CSCHEMA%NOTFOUND;
IF (RSCHEMA.COUNT_URL = 2) THEN
SYS.DBMS_OUTPUT.PUT_LINE('URL: ' || RSCHEMA.url_name_complete );
END IF;
END LOOP;
CLOSE CSCHEMA;
SYS.DBMS_OUTPUT.PUT_LINE('END - CHECK URL');
END;
/
Grazie mille in anticipo.