1.ORACLE没有LIMIT,只能使用ROWNUM 例如 SELECT COUNT(1) FROM table_name WHERE ROWNUM <= 10;
2.ORACLE将字符串转换为日期格式:TO_DATE('2019-07-10 00:00:00', 'yyyy-MM-dd HH24:mi:ss')
3.ORACLE创建触发器:
CREATE OR REPLACE TRIGGER TRIGGER_TABLE_AAA
AFTER DELETE OR INSERT OR UPDATE ON TABLE_AAA FOR EACH ROW
DECLARE IS_EXIST NUMBER(1,0) DEFAULT 0;
BEGIN
IF INSERTING THEN
SELECT COUNT(1) INTO IS_EXIST FROM TABLE_BBB WHERE ID = :NEW.ID;
IF ( IS_EXIST = 0 ) THEN
INSERT INTO TABLE_BBB
(
ID,
CLIENT_ID,
CONTRACT_ID,
YEAR, MONTH,
BRANCH,
IS_CONFIRMED,
HAS_OBJECTION,
COMMENTS,
CONFIRM_DATE
) VALUES (
:NEW.ID,
:NEW.CLIENT_ID,
:NEW.CONTRACT_ID,
:NEW.YEAR,
:NEW.MONTH,
:NEW.BRANCH,
:NEW.IS_CONFIRMED,
:NEW.HAS_OBJECTION,
:NEW.COMMENTS,
:NEW.CONFIRM_DATE
);
END IF;
ELSIF UPDATING THEN
UPDATE TABLE_BBB SET
CLIENT_ID = :NEW.CLIENT_ID,
CONTRACT_ID = :NEW.CONTRACT_ID,
YEAR = :NEW.YEAR,
MONTH = :NEW.MONTH,
BRANCH = :NEW.BRANCH,
IS_CONFIRMED = :NEW.IS_CONFIRMED,
HAS_OBJECTION = :NEW.HAS_OBJECTION,
COMMENTS = :NEW.COMMENTS,
CONFIRM_DATE = :NEW.CONFIRM_DATE
WHERE ID = :NEW.ID;
ELSIF DELETING THEN
DELETE FROM TABLE_BBB WHERE ID = :OLD.ID;
END IF;
END;
4.PL/SQL的使用
ORACLE中有schema和用户的概念,用户是以用户名密码的形式存在的,用户针对某些schema拥有哪些权限是有超级管理员来定义的。例如用户atg_etl用户拥有针对schema prdcore所管辖的所有对象的增删改查权限。schema就是一些列对象的集合,比如表、视图、存储过程、触发器、索引、方法等等。
使用用户名密码通过PL/SQL的客户端登录到ORACLE中之后,点击左上角的“新建”按钮,选择SQL窗口以打开查询面板
在查询变面板中输入 SELECT * FROM prdcore.table_name WHERE ROWNUM <= 10;
然后点击左上角执行按钮(齿轮形状的图标),执行SQL语句
让鼠标移动到prdcore.table_name上然后按住ctrl键,这时“prdcore.table_name”这一段会变成蓝色
变蓝之后鼠标左键单击,就跳转到表的定义处,可以查看和修改表的结构信息了。
如果这时有多个窗口,可以在左下方的窗口列表那里进行切换。