【发布时间】:2015-01-30 11:46:39
【问题描述】:
我正在尝试创建以下 PL/sql 但出现错误
创建新的匿名 PL/SQL 块:
首先,从employees表中选择雇员总数、平均工资、最高工资和最低工资到PL/SQL变量中。平均工资应四舍五入为整数
-
然后创建一个包含以下列的表 stats:
the_date DATE, emp_num NUMBER avg_sal NUMBER max_sal NUMBER min_sal NUMBER 然后使用上述 PL/SQL 变量将今天日期、员工总数、平均工资、最高工资和最低工资的值插入到统计表中
- 最后打印在屏幕上。
我的代码:
DECLARE
v_emp_no Number;
v_av_sal Number;
v_mx_sal Number;
v_mn_sal Number;
BEGIN
SELECT count(employee_id) as total_emp, ROUND(AVG(salary))as avg_sal, MAX(salary)as max_sal, MIN(salary)as min_sal
INTO v_emp_no, v_av_sal, v_mx_sal, v_mn_sal
FROM employees;
EXECUTE IMMEDIATE 'CREATE TABLE stats (the_date DATE, emp_num NUMBER, avg_sal NUMBER, max_sal NUMBER, min_sal NUMBER)';
EXECUTE IMMEDIATE 'INSERT INTO stats values (sysdate, v_emp_no, v_av_sal, v_mx_sal, v_mn_sal)';
EXECUTE IMMEDIATE 'DROP TABLE stats';
DBMS_OUTPUT.PUT_LINE('Today our company has '||v_emp_no||' emplyees');
DBMS_OUTPUT.PUT_LINE('The average salary in the company is '||v_av_sal);
DBMS_OUTPUT.PUT_LINE('The maximum salary in the company is '||v_mx_sal);
DBMS_OUTPUT.PUT_LINE('The minimum salary in the company is '||v_mn_sal);
END;
/
但出现以下错误
Error report -
ORA-00984: column not allowed here
ORA-06512: at line 11
00984. 00000 - "column not allowed here"
*Cause:
*Action:
【问题讨论】:
-
为什么 PL/SQL 可以在普通 SQL 中完成。
标签: oracle plsql dynamic-sql