开发环境windows安装oracle 19c并连接数据库
oracle 19c下载地址:https://www.oracle.com/cn/database/technologies/oracle-database-software-downloads.html#license-lightbox
创建链接服务器(远程数据库),登录 sql plus
,如下:
创建链接服务器(远程数据库)语句如下:
CREATE DATABASE LINK dblink_yybip
CONNECT TO yybipIDENTIFIED BY Afxm1234 USING'(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.80.189.12)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL)))';
查看所有数据库连接,如下:
-- 查看所有的数据库链接
SELECT * FROM dba_db_links;-- 查看当前用户的数据库链接
SELECT * FROM user_db_links;-- 查询远程数据库中的数据
SELECT * FROM IUAP_APDOC_BASEDOC.BO_ORGADMIN@DBLINK_YYBIP;-- 查询所有模式名称
SELECT username FROM dba_users;-- 查询当前登录用户用友的模式名称
SELECT username FROM all_users;-- 创建新的模式
CREATE USER my_schema IDENTIFIED BY password;
CREATE USER c##newuser IDENTIFIED BY password;-- 授予模式权限
GRANT SELECT, INSERT, UPDATE, DELETE ON table_name TO my_schema;-- 查看所有表空间
SELECT * FROM DBA_TABLESPACES; -- 查看指定表空间下的所有表
SELECT TABLE_NAME,TABLESPACE_NAME FROM DBA_TABLES WHERE TABLESPACE_NAME='USERS';-- 查看当前用户默认表空间
SELECT * FROM USER_USERS; -- 修改用户默认表空间
ALTER USER C##RY_NET DEFAULT TABLESPACE USERS; -- 分配表空间配额
ALTER USER C##RY_NET QUOTA UNLIMITED ON USERS;-- 基本权限
GRANT CREATE SESSION TO C##RY_NET; -- 分配表空间配额
GRANT UNLIMITED TABLESPACE TO C##RY_NET; -- 具体表的权限
GRANT SELECT, INSERT, UPDATE, DELETE ON DM_BED TO C##RY_NET; -- 切换会话
ALTER SESSION SET CURRENT_SCHEMA = C##RY_NET;-- 列出当前用户的序列
SELECT * FROM USER_SEQUENCES;
SELECT * FROM DBA_SEQUENCES ORDER BY SEQUENCE_NAME;-- 用序列和触发器生成自增ID
CREATE SEQUENCE sys_logininfor_seq START WITH 1 INCREMENT BY 1;
CREATE OR REPLACE TRIGGER sys_logininfor_seq_trBEFORE INSERT ON sys_logininfor FOR EACH ROWWHEN (NEW.info_id IS NULL)
BEGINSELECT sys_logininfor_seq.NEXTVAL INTO :NEW.info_id FROM DUAL;
END;-- 查看序列当前值
SELECT C##RY_NET.SYS_LOGININFOR_SEQ.CURRVAL FROM DUAL;
-- 输出序列的当前值,确保它是正确的-- 生成下一个值
SELECT C##RY_NET.SYS_LOGININFOR_SEQ.NEXTVAL FROM DUAL;
-- 输出序列的下一个值,确保它是连续的-- 使用 ALTER SEQUENCE 语句将序列的当前值调整到 133
SELECT C##RY_NET.SYS_LOGININFOR_SEQ.CURRVAL FROM DUAL; -- 39
ALTER SEQUENCE C##RY_NET.SYS_LOGININFOR_SEQ INCREMENT BY 94; -- 修改步长
SELECT C##RY_NET.SYS_LOGININFOR_SEQ.NEXTVAL FROM DUAL; -- 39+94=133
SELECT C##RY_NET.SYS_LOGININFOR_SEQ.CURRVAL FROM DUAL; -- 133
ALTER SEQUENCE C##RY_NET.SYS_LOGININFOR_SEQ INCREMENT BY 1; -- 恢复步长-- 从 Oracle 12c 开始,可以利用 GENERATED ALWAYS AS IDENTITY 来生成自增列
CREATE TABLE your_table (id NUMBER GENERATED ALWAYS AS IDENTITY PRIMARY KEY,other_column VARCHAR2(100)
);
INSERT INTO your_table (other_column) VALUES ('some_value');