Answers

Question and Answer:

  Home  Oracle Database

⟩ What Happens If Variable Names Collide with Table/Column Names?

When a variable name collides with a column name, PL/SQL will use it as the variable if it is used where variable is allowed; It will be used as the column, if it is used where variable is not allowed but column is allowed. Here is a good example of variable names collide with column names:

CREATE TABLE student (id NUMBER(5) PRIMARY KEY,

first_name VARCHAR(80) NOT NULL,

last_name VARCHAR(80) NOT NULL);

Table created.

DECLARE

id NUMBER;

first_name CHAR(10);

BEGIN

id := 29;

first_name := 'Bob';

INSERT INTO student VALUES(id, first_name, 'Henry');

first_name := 'Joe';

INSERT INTO student VALUES(id+1, first_name, 'Bush');

first_name := 'ggl';

UPDATE student SET first_name = first_name WHERE id = 29;

-- 1 row updated

-- Both 'first_name's are treated as column names

UPDATE student SET first_name = first_name

WHERE id = id+1;

-- 0 rows updated

-- Both "id"s are treated as variable names

DELETE FROM student WHERE id = id;

-- 2 rows deleted

END;

/

 181 views

More Questions for you: