On Nov 2, 7:38 pm, Jignesh Makwana <makwanajigne...@gmail.com> wrote:
> Would you please try with dba_tables?
>
> Regards,
> Jignesh Makwana
> On Nov 3, 2011 4:17 AM, "ddf" <orat...@msn.com> wrote:
>

To add to the prior post if one does have a direct grant on DBA_TABLES
and creates a procedure it depends upon how AUTHID is defined:

SQL> create or replace procedure rename_cols (p_tabstr IN varchar2)
  2  authid definer
  3  is
  4          sqltxt varchar2(2000);
  5  begin
  6          for rec in (select owner, table_name from dba_tables
where table_name like '%'||upper(p_tabstr) and owner = 'BUNG') loop
  7                  sqltxt := 'alter table '||rec.owner||'.'||
rec.table_name||' rename column colname to yertz';
  8                  execute immediate sqltxt;
  9          end loop;
 10
 11  end;
 12  /

Procedure created.

SQL>
SQL> show errors
No errors.
SQL>
SQL> grant execute on rename_cols to bung;

Grant succeeded.

SQL>

The procedure creates without error due to the direct grant.  Allowing
another user absent the direct grant to execute it can be a problem
with the default AUTHID
SQL> connect bung/bing
Connected.
SQL>
SQL> create table yuppo(
  2          smort number,
  3          albeister varchar2(20),
  4          colname date
  5  );

Table created.

SQL>
SQL> create table blue_yuppo(
  2          smort number,
  3          albeister varchar2(20),
  4          colname date
  5  );

Table created.

SQL>
SQL> create table red_yuppo(
  2          smort number,
  3          albeister varchar2(20),
  4          colname date
  5  );

Table created.

SQL>
SQL> describe yuppo
 Name                                      Null?    Type
 ----------------------------------------- --------
----------------------------
 SMORT                                              NUMBER
 ALBEISTER                                          VARCHAR2(20)
 COLNAME                                            DATE

SQL> describe blue_yuppo
 Name                                      Null?    Type
 ----------------------------------------- --------
----------------------------
 SMORT                                              NUMBER
 ALBEISTER                                          VARCHAR2(20)
 COLNAME                                            DATE

SQL> describe red_yuppo
 Name                                      Null?    Type
 ----------------------------------------- --------
----------------------------
 SMORT                                              NUMBER
 ALBEISTER                                          VARCHAR2(20)
 COLNAME                                            DATE

SQL>
SQL> exec bing.rename_cols('yuppo')
BEGIN bing.rename_cols('yuppo'); END;

*
ERROR at line 1:
ORA-01031: insufficient privileges
ORA-06512: at "BING.RENAME_COLS", line 8
ORA-06512: at line 1


SQL>
SQL> describe yuppo
 Name                                      Null?    Type
 ----------------------------------------- --------
----------------------------
 SMORT                                              NUMBER
 ALBEISTER                                          VARCHAR2(20)
 COLNAME                                            DATE

SQL> describe blue_yuppo
 Name                                      Null?    Type
 ----------------------------------------- --------
----------------------------
 SMORT                                              NUMBER
 ALBEISTER                                          VARCHAR2(20)
 COLNAME                                            DATE

SQL> describe red_yuppo
 Name                                      Null?    Type
 ----------------------------------------- --------
----------------------------
 SMORT                                              NUMBER
 ALBEISTER                                          VARCHAR2(20)
 COLNAME                                            DATE

SQL>
SQL> connect bing/#####
Connected.
SQL>
SQL> create or replace procedure rename_cols (p_tabstr IN varchar2)
  2  authid current_user
  3  is
  4          sqltxt varchar2(2000);
  5  begin
  6          for rec in (select owner, table_name from dba_tables
where table_name like '%'||upper(p_tabstr) and owner = 'BUNG') loop
  7                  sqltxt := 'alter table '||rec.owner||'.'||
rec.table_name||' rename column colname to yertz';
  8                  execute immediate sqltxt;
  9          end loop;
 10
 11  end;
 12  /

Procedure created.

SQL>
SQL> show errors
No errors.
SQL>
SQL> connect bung/bing
Connected.
SQL>
SQL> drop table yuppo purge;

Table dropped.

SQL> drop table blue_yuppo purge;

Table dropped.

SQL> drop table red_yuppo purge;

Table dropped.

SQL>
SQL> create table yuppo(
  2          smort number,
  3          albeister varchar2(20),
  4          colname date
  5  );

Table created.

SQL>
SQL> create table blue_yuppo(
  2          smort number,
  3          albeister varchar2(20),
  4          colname date
  5  );

Table created.

SQL>
SQL> create table red_yuppo(
  2          smort number,
  3          albeister varchar2(20),
  4          colname date
  5  );

Table created.

SQL>
SQL> describe yuppo
 Name                                      Null?    Type
 ----------------------------------------- --------
----------------------------
 SMORT                                              NUMBER
 ALBEISTER                                          VARCHAR2(20)
 COLNAME                                            DATE

SQL> describe blue_yuppo
 Name                                      Null?    Type
 ----------------------------------------- --------
----------------------------
 SMORT                                              NUMBER
 ALBEISTER                                          VARCHAR2(20)
 COLNAME                                            DATE

SQL> describe red_yuppo
 Name                                      Null?    Type
 ----------------------------------------- --------
----------------------------
 SMORT                                              NUMBER
 ALBEISTER                                          VARCHAR2(20)
 COLNAME                                            DATE

SQL>
SQL> exec bing.rename_cols('yuppo')

PL/SQL procedure successfully completed.

SQL>
SQL> describe yuppo
 Name                                      Null?    Type
 ----------------------------------------- --------
----------------------------
 SMORT                                              NUMBER
 ALBEISTER                                          VARCHAR2(20)
 YERTZ                                              DATE

SQL> describe blue_yuppo
 Name                                      Null?    Type
 ----------------------------------------- --------
----------------------------
 SMORT                                              NUMBER
 ALBEISTER                                          VARCHAR2(20)
 YERTZ                                              DATE

SQL> describe red_yuppo
 Name                                      Null?    Type
 ----------------------------------------- --------
----------------------------
 SMORT                                              NUMBER
 ALBEISTER                                          VARCHAR2(20)
 YERTZ                                              DATE

SQL>

-- 
You received this message because you are subscribed to the Google
Groups "Oracle PL/SQL" group.
To post to this group, send email to Oracle-PLSQL@googlegroups.com
To unsubscribe from this group, send email to
oracle-plsql-unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/Oracle-PLSQL?hl=en

Reply via email to