作者:胖头鱼的鱼缸(尹海文) Oracle ACE Pro: Database PostgreSQL ACE 10年+数据库行业经验 拥有OCM 11g/12c/19c、MySQL 8.0 OCP、Exadata、CDP等认证 墨天轮MVP,ITPUB认证专家 圈内拥有“总监”称号,非著 名社恐(社交恐怖分子) 全网同名:胖头鱼的鱼缸 ITPUB:yhw1809 除授权转载并标明出处外,均为“非法”抄袭

Oracle AI Database 23.26.1 引入了 INSERT INTO … SET 语法,使数据插入操作更加灵活和自文档化。开发者可以根据列名称而非位置来指定值,减少因列顺序变化导致的错误。
语法:
INSERT INTO table_name SET column1 = value1, column2 = value2, column3 = value3;
特点:
传统写法(依赖列顺序):
INSERT INTO t (id, name, age) VALUES (1, ‘Alice’, 30);
INSERT INTO SET 写法(列顺序无关):
INSERT INTO t SET age = 30, name = ‘Alice’, id = 1;
优势:
同之前一样,使用用户NFTEST,已授权DB_DEVELOPER_ROLE角色,测试操作均在NFTEST用户下执行。
CREATE TABLE npi_employees ( emp_id NUMBER PRIMARY KEY, emp_name VARCHAR2(100) NOT NULL, dept VARCHAR2(50) DEFAULT 'General', salary NUMBER DEFAULT 0, hire_date DATE DEFAULT SYSDATE);

INSERT INTO npi_employeesSET salary = 50000, emp_name = 'Alice', hire_date = DATE '2026-01-15', emp_id = 1; commit; SELECT * FROM npi_employees WHERE emp_id = 1;

INSERT INTO npi_employees SET emp_id = 2, emp_name = 'Bob'; commit; SELECT * FROM npi_employees WHERE emp_id = 2;

INSERT INTO npi_employees SET hire_date = DATE '2026-02-10', emp_id = 3, salary = 60000, dept = 'Engineering', emp_name = 'Carol'; commit; SELECT * FROM npi_employees WHERE emp_id = 3;

INSERT INTO npi_employees (emp_id, emp_name, dept, salary, hire_date) VALUES (4, 'Dave', 'Sales', 80000, DATE '2026-03-01'); INSERT INTO npi_employees SET emp_id = 5, emp_name = 'Eve', dept = 'HR', salary = 45000, hire_date = DATE '2026-03-15'; commit; SELECT emp_id, emp_name, dept, salary, hire_date FROM npi_employeesORDER BY emp_id;

INSERT INTO npi_employees SET salary = 70000, hire_date = DATE '2026-04-01', dept = 'Finance', emp_name = 'Frank', emp_id = 6; commit; SELECT emp_id, emp_name, dept, salary, hire_date FROM npi_employees WHERE emp_id = 6;

本期对 Oracle AI Database 26ai,23.26.1 版本新引入的 INSERT INTO SET 进行了完整介绍与实战演示。
老规矩,知道写了些啥。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31466763/viewspace-3179746/ ,如需转载,请注明出处,否则将追究法律责任。