如何在Insert语句中使用PL SQL常量

时间:2011-04-04 20:30:24

标签: sql plsql

我是PL SQL Code的新手,需要帮助编写Insert查询语句。 例如:我想在Employees表中插入Employee,其中只有员工姓名更改,但城市是不变的。

DECLARE
  emp_var_prefix varchar2(12) := 'QATEST';
  emp_var_temp varchar2(12) := '';
  city constant varchar(30) := 'dallas'

begin
  DBMS_OUTPUT.ENABLE;
  for i in 1..2 loop
    emp_var_temp  := emp_var_prefix;
    emp_var_temp := emp_var_prefix ||i;

    INSERT INTO EMPLOYEE TABLE ('EMPLOYEE_NAME', 'CITY') values ('emp_var_temp', '<what should I put here for constant dallas for city name>');

    DBMS_OUTPUT.PUT_LINE(emp_var_temp);
  end loop;

END;

1 个答案:

答案 0 :(得分:2)

看起来你想要像

这样的东西
DECLARE
  l_emp_var_prefix varchar2(12) := 'QATEST';
  l_emp_var_temp varchar2(12) := '';
  l_city constant varchar(30) := 'dallas'
begin
  DBMS_OUTPUT.ENABLE;
  for i in 1..2 loop
    l_emp_var_temp := l_emp_var_prefix ||i;

    INSERT INTO EMPLOYEE(employee_name, city) 
      values (l_emp_var_temp, l_city );

    DBMS_OUTPUT.PUT_LINE(l_emp_var_temp);
  end loop;

END;

一般来说使用也是列名的变量名是一个坏主意 - 这使得你很可能会遇到你想要引用变量的范围错误而编译器无意中假设你意思是指专栏。那些调试相当讨厌。更容易采用一些约定,例如使用l_为局部变量添加前缀,以区别于可以使用p_作为前缀的列名或参数。