Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Möchten Sie, dass diese einfache Abfrage in einer Schleife ausgeführt wird

Sie können dies mit 2 SQL-Skriptdateien wie diesen tun:

1) Datei myscript.sql:

ACCEPT column_name CHAR PROMPT 'Please insert column name: '

SELECT DISTINCT owner, table_name
FROM all_tab_columns
WHERE column_name IN ('&column_name');

-- Ask the user if the want to search again
ACCEPT response CHAR PROMPT 'Would you like to search for another column? '

-- Use a SELECT statement to look at their response and set variable "script" as appropriate
COLUMN script new_value script

-- Stop this select's results being displayed (in SQL Plus)
SET TERM OFF

SELECT CASE LOWER('&response.') WHEN 'yes' THEN 'myscript' ELSE 'stop' END AS script
FROM DUAL;

-- Switch terminal output back on
SET TERM ON

-- Run whichever script the user chose i.e. "myscript.sql" if they said "yes", "stop.sql" if they said "no".
@&script.

2) Datei stop.sql:

-- This script just says "Have a nice day" then ends.
PROMPT Have a nice day

Je nachdem, ob der Benutzer mit „Ja“ oder „Nein“ antwortet, führt das Skript entweder sich selbst erneut aus (Schleife) oder das Skript stop.sql, das nur „Have a nice day“ sagt.