使用 Oracle PL/SQL 中的存储过程更改 table 的列名

Change table's column name using stored procedure in Oracle PL/SQL

我是 Oracle 新手 PL/SQL。我得到了一个 table 名字 EMP_1812057(SAL, HIRDATE)。如何通过创建存储过程来更改其列的名称?我可以做一些事情,比如将新名称作为过程的参数传递,然后它将列名称更改为该新名称吗?你能给我一些例子吗?还是谢谢了。

我不确定该过程的真正目的是什么(我们不会经常修改列名,而且我们很少在过程中这样做),但是 - 你会使用动态 SQL使用适当的 ALTER TABLE 语句。

例如,将 SAL 列重命名为 SALARY:

SQL> desc emp_1812057
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 SAL                                                NUMBER
 HIREDATE                                           DATE

SQL> create or replace procedure p_emp is
  2  begin
  3    execute immediate 'alter table emp_1812057 rename column sal to salary';
  4  end;
  5  /

Procedure created.

SQL> exec p_emp

PL/SQL procedure successfully completed.

SQL> desc emp_1812057
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 SALARY                                             NUMBER
 HIREDATE                                           DATE

SQL>