在空闲时间学习sql

iqjalb3h  于 2021-07-26  发布在  Java
关注(0)|答案(2)|浏览(358)


所以我有下表

  1. EMPNO ENAME DEPTN JOB HIREDDATE SALARY
  1. 111 Narayan R22 Electrical 26-DEC-99 5000
  2. 108 Horen P69 PWD 10-DEC-95 10000
  3. 130 Roy A13 Security 15-SEP-01 25000
  4. 420 Roy D12 IT 15-SEP-99 2500
  5. 100 Allu A13 Security 26-JAN-15 15000

使用数据类型 EMPNO NOT NULL NUMBER(38), ENAME NOT NULL VARCHAR2(20), DEPTNO VARCHAR2(5), JOB VARCHAR2(20), HIREDDATE DATE, SALARY NUMBER(38) 我想尝试创建一个存储过程a)更改任何员工的雇用日期。b) 执行dml命令(insert、update和delete)c)乘以两个数字
我试着用这个密码

  1. CREATE PROCEDURE ChangeHired @EmpNo int, @Hired date
  2. AS
  3. ALTER TABLE Employee01 MODIFY HireDate = @Hired WHERE EmpNo = @EmpNo
  4. GO;

但它在oracle10g中不起作用。需要帮助。
编辑:update employee01 set hiredate=@hired where empno=@empno应该被使用这是我的一个错误,但是代码仍然没有被执行。

u5i3ibmn

u5i3ibmn1#

请使用下面的查询,

  1. update Employee01 set HireDate = @Hired WHERE EmpNo = @EmpNo

您刚刚创建了一个过程,为了使它工作,您必须调用它,使用,

  1. execute procedure_name(parameter1, parameter2);

只有在修改表的结构时才应该使用alter语句。处理数据时,请仅使用dml。

6xfqseft

6xfqseft2#

你使用的语法(或吉姆建议的)不是oracle。应该是这样的(包括您要求的“乘法”示例):
示例数据(该过程工作所需的最小列数):

  1. SQL> alter session set nls_date_format = 'dd.mm.yyyy';
  2. Session altered.
  3. SQL> select * From employee1;
  4. EMPNO HIREDDATE
  5. ---------- ----------
  6. 111 08.06.2020

程序:

  1. SQL> create or replace procedure changehired(par_empno in int, par_hired in date)
  2. 2 is
  3. 3 a number := 2;
  4. 4 b number := 3;
  5. 5 result number;
  6. 6 begin
  7. 7 update employee1 set
  8. 8 hireddate = par_hired
  9. 9 where empno = par_empno;
  10. 10
  11. 11 result := a * b;
  12. 12 dbms_output.put_line(a || ' * '|| b || ' = ' || result);
  13. 13 end;
  14. 14 /
  15. Procedure created.

测试:一旦创建了过程,就必须执行它。为了看结果 dbms_output.put_line ,在您使用的工具中启用serveroutput(对于sql*plus或sql developer,请执行 set serveroutput on ).

  1. SQL> set serveroutput on;
  2. SQL> begin
  3. 2 changehired(111, date '2020-06-08');
  4. 3 end;
  5. 4 /
  6. 2 * 3 = 6
  7. PL/SQL procedure successfully completed.
  8. SQL> select * from employee1;
  9. EMPNO HIREDDATE
  10. ---------- ----------
  11. 111 08.06.2020
  12. SQL>
展开查看全部

相关问题