Я пытаюсь создать ShellScript, который подключается к sqlplus и проверяет, существует ли таблица, в случае ее отсутствия скрипт создаст ее.
Таблица может быть пустой.
Я пробовал это:
#!/bin/bash
sqlplus -s user/pass> tabs << EOF
SET SERVEROUTPUT ON
SET FEEDBACK OFF
DECLARE
e_not_exist EXCEPTION;
PRAGMA EXCEPTION_INIT(e_not_exist, -942);
tab_count NUMBER;
BEGIN
SELECT COUNT(*) INTO tab_count
FROM table_name;
DBMS_OUTPUT.PUT_LINE(tab_count);
EXCEPTION
when e_not_exist then
dbms_output.put_line('Table or view does not exists');
END;
/
EXIT
EOF
tabcount=`cat tabs`
echo You have $tabcount tables.
Ouput:
- У вас есть 0 таблиц, когда таблица существует.(пусто)
- У вас есть N таблиц, когда таблица существует.(не пусто)
- У вас есть FROM table_name;ОШИБКА в строке 7: ORA-06550: строка 7, столбец 9: PL / SQL: ORA-00942: таблица или представление не существует ORA-06550: строка 6, столбец 4: PL / SQL: оператор SQL игнорирует таблицы.