oracle练习题编写emp的empno和ename下的数据实现调换位置存储(要求原字段位置不许变,通过当前表去实习)
时间: 2024-02-23 08:01:14 浏览: 87
可以通过以下SQL语句实现empno和ename的位置调换:
```
UPDATE emp SET empno = ename || empno,
ename = SUBSTR(empno, LENGTH(ename)+1),
empno = SUBSTR(empno, 1, LENGTH(empno)-LENGTH(ename));
```
这里使用了字符串函数来实现empno和ename的位置调换。首先将ename和empno拼接在一起,然后将拼接后的字符串截取出ename和empno的值,分别赋给ename和empno,即可完成位置调换。需要注意的是,这种方法只适用于字符串类型的字段。如果要交换数值类型的字段,需要使用其他方法。
相关问题
编写emp的empno和ename下的数据实现调换位置存储(要求原字段位置不许变,通过当前表去实现)
你可以使用以下的UPDATE语句来实现emp表中empno和ename字段的位置调换:
```
UPDATE emp
SET empno = ename, ename = empno;
```
这个UPDATE语句中,首先将empno字段的值赋给ename字段,然后将ename字段的值赋给empno字段。这样就实现了empno和ename字段位置的调换,而且不需要创建新的字段或表。
需要注意的是,这个语句会对整个表进行更新,因此请谨慎使用,最好在备份数据的前提下进行操作。
Oracle 写一个触发器,将emp表新增的ename列的数据写入triLog表的name字段
可以使用 Oracle 触发器来实现将 emp 表新增的 ename 列的数据写入 triLog 表的 name 字段。以下是一个示例触发器的代码:
```
CREATE OR REPLACE TRIGGER trg_emp_insert
AFTER INSERT ON emp
FOR EACH ROW
BEGIN
INSERT INTO triLog(name) VALUES (:NEW.ename);
END;
```
这个触发器在 emp 表中插入一行新数据时被触发,然后将 ename 列的值插入到 triLog 表的 name 列中。`:NEW.ename` 表示新增数据行中 ename 列的值。注意,这个触发器是在每插入一行数据时都会被触发,因此如果同时插入多行数据,该触发器也会被触发多次。
阅读全文