oracle - объединить в select для drop, create, grant - потерял в '' '' - PullRequest
0 голосов
/ 17 марта 2019

Я новичок в базе данных Oracle, получил задание написать несколько выборок, но я не понимаю принцип, как это работает (или, лучше сказать, не работает). Не могли бы вы помочь мне найти ошибку, и, возможно, у вас есть ссылка на некоторую информацию или конвертер, который помогает таким записям.

v_sql := 'SELECT ''DROP TABLE ''||object_name||'' as
            select *  
            FROM all_objects
            WHERE object_name LIKE '''%''|| v_date ||''%'''
            and object_type = ''TABLE''
            and owner =''||v_owner||'''; 

1 Ответ

2 голосов
/ 17 марта 2019

Вы пытаетесь сгенерировать DROP операторов для конкретного пользователя?Начните с приведенного ниже анонимного блока и добавьте к нему.

--Generate DROP statements for all tables for a user.
declare
    v_owner varchar2(128) := user;
begin
    for objects in
    (
        select distinct 'DROP TABLE "'||owner||'"."'||object_name||'"' v_sql
        from all_objects
        where object_type = 'TABLE'
            and owner = v_owner
        order by v_sql
    ) loop
        dbms_output.put_line(objects.v_sql);
    end loop;
end;
/
...