CREATEUSER C##test_user IDENTIFIED BY test_password; GRANTCREATE SESSION TO C##test_user;
创建本地用户则需要切换当前会话到指定的PDB中
1 2 3 4 5 6 7
-- 在容器数据库(CDB)中查看可插拔数据库(PDB) SELECT name FROM v$pdbs; -- 换到目标 PDB ALTER SESSION SET CONTAINER = pdb1; -- PDB中创建本地用户 CREATEUSER new_schema_user IDENTIFIED BY schema_password; GRANTCREATE SESSION TO new_schema_user;
SELECT NAME, P_ID FROM ( SELECT t.*, ROW_NUMBER() OVER (PARTITIONBY P_ID ORDERBY CRT_TIME) AS row_num FROM [schema_name].[table_name] t ) WHERE row_num =1
DECLARE -- 声明部分,定义变量 v_count NUMBER; BEGIN -- 执行部分,查询并赋值 SELECTCOUNT(*) INTO v_count FROM employees; DBMS_OUTPUT.PUT_LINE('员工总数为:'|| v_count); EXCEPTION -- 异常处理部分,处理可能的错误 WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE('未找到数据。'); END;
控制结构
条件语句包括IF - THEN - ELSE语句用于根据条件执行不同的代码块。例如:
1 2 3 4 5 6 7
IF conditionTHEN -- 条件为真时执行的语句 ELSIF another_condition THEN -- 另一个条件为真时执行的语句 ELSE -- 所有条件为假时执行的语句 END IF;
-- 批量插入随机数据(存储过程) CREATEOR REPLACE PROCEDURE batch_insert_users( total IN NUMBER DEFAULT2 ) AS -- 定义变量 v_id ADMIN_USER.ID%TYPE; v_name ADMIN_USER.NAME%TYPE; v_gender ADMIN_USER.GENDER%TYPE; v_pid ADMIN_USER.P_ID%TYPE; v_orgcode ADMIN_USER.ORG_CODE%TYPE;
gender NUMBER :=0; v_counter NUMBER :=1; -- 循环计数器 v_max NUMBER := total; -- 最大插入条数 BEGIN -- 循环插入数据 WHILE v_counter <= v_max LOOP v_id := random_alphanum(6); -- 随机六位字符(包含大小写字母、数字) v_name := random_chinese_name(); -- 随机两位或三位姓名 gender := ROUND(DBMS_RANDOM.VALUE(0, 1)); v_pid := simple_random_id_card(gender); -- 随机身份证号 SELECT CASE WHEN gender =0THEN'2' ELSE'1' ENDAS res INTO v_gender; -- 随机性别(1男性2女性) SELECT ID INTO v_orgcode -- 从现有组织代码中随机挑选一个 FROM ( SELECT* FROM ADMIN_ORG ORDERBY DBMS_RANDOM.VALUE -- 对查询结果进行随机排序 ) WHERE ROWNUM =1;
CREATEOR REPLACE FUNCTION random_alphanum(p_length NUMBER DEFAULT6) RETURN VARCHAR2 IS v_chars VARCHAR2(62) :='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; v_result VARCHAR2(4000); BEGIN v_result :=''; FOR i IN1..p_length LOOP v_result := v_result || SUBSTR(v_chars, MOD(ABS(DBMS_RANDOM.RANDOM), 62) +1, 1); END LOOP; RETURN v_result; END random_alphanum;