update emp2 t2
set t2.ename = 'Name'
where 1 = 1
and rowid = (select rowid
from emp2 t
where empno = 23);
Allerdings ist diese Art des Updates nicht sehr effizient.
https://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:53140678334596
http://www.java2s.com/Tutorial/Oracle/0040__Query-Select/UnderstandingRowIdentifiersrowid.htm
http://psoug.org/definition/ROWID.htm
http://www.orafaq.com/wiki/ROWID
Donnerstag, 4. Februar 2016
Variablen, Deklaration und Definition
-- *************************************************************
-- * allgemeine SELECT * INTO - Syntax
-- *************************************************************
select
into
from
where;
-- *************************************************************
-- * Deklaration des Typs
-- * ************************************************************
declare
v_empno Number;
v_ename Varchar2(50);
v_job Varchar2(50);
begin
select empno, ename, job
into v_empno, v_ename, v_job
from emp
where empno = 1
;
--
dbms_output.put_line (v_empno || ' | ' ||
v_ename || ' | ' ||
v_job);
end;
-- *************************************************************
-- * mit dem Typ einer Tabellenspalte
-- *************************************************************
declare
-- Definitionen
v_empno emp.empno%TYPE;
v_ename emp.ename%TYPE;
v_job emp.job%TYPE;
begin
select empno, ename, job
into v_empno, v_ename, v_job
from emp
where empno = 8001
;
--
dbms_output.put_line (v_empno || ' | ' ||
v_ename || ' | ' ||
v_job);
end;
-- *************************************************************
-- * Record-Deklaration
-- *************************************************************
declare
-- Define a record
TYPE t_EmpRecord is RECORD (
v_empno emp.empno%TYPE,
v_ename emp.ename%TYPE,
v_job emp.job%TYPE);
-- Declare a variable of type record
v_Employee t_EmpRecord;
begin
select e.empno, e.ename, e.job
into v_Employee.v_empno, v_Employee.v_ename, v_Employee.v_job
from emp e
where e.empno = 8001
;
--
dbms_output.put_line (v_Employee.v_empno || ' | ' ||
v_Employee.v_ename || ' | ' ||
v_Employee.v_job);
end;
-- * allgemeine SELECT * INTO - Syntax
-- *************************************************************
select
into
from
where
--
-- *
declare
v_empno Number;
v_ename Varchar2(50);
v_job Varchar2(50);
begin
select empno, ename, job
into v_empno, v_ename, v_job
from emp
where empno = 1
;
--
dbms_output.put_line (v_empno || ' | ' ||
v_ename || ' | ' ||
v_job);
end;
--
-- *************************************************************
declare
-- Definitionen
v_empno emp.empno%TYPE;
v_ename emp.ename%TYPE;
v_job emp.job%TYPE;
begin
select empno, ename, job
into v_empno, v_ename, v_job
from emp
where empno = 8001
;
--
dbms_output.put_line (v_empno || ' | ' ||
v_ename || ' | ' ||
v_job);
end;
-- *************************************************************
-- * Record-Deklaration
-- *************************************************************
declare
-- Define a record
TYPE t_EmpRecord is RECORD (
v_empno emp.empno%TYPE,
v_ename emp.ename%TYPE,
v_job emp.job%TYPE);
-- Declare a variable of type record
v_Employee t_EmpRecord;
begin
select e.empno, e.ename, e.job
into v_Employee.v_empno, v_Employee.v_ename, v_Employee.v_job
from emp e
where e.empno = 8001
;
--
dbms_output.put_line (v_Employee.v_empno || ' | ' ||
v_Employee.v_ename || ' | ' ||
v_Employee.v_job);
end;
Abonnieren
Kommentare (Atom)