运维联盟俱乐部

 找回密码
 立即注册
查看: 259|回复: 1

[日常管理] plsql拼写动态sql

[复制链接]
  • TA的每日心情
    开心
    2023-8-9 11:05
  • 发表于 2023-12-8 15:58:13 | 显示全部楼层 |阅读模式
    SET SERVEROUTPUT ON;
    DECLARE
        sql_stmt VARCHAR2(1000); -- 定义动态 SQL 查询语句
    BEGIN
        -- 构建动态 SQL 查询语句
        FOR user_rec IN (SELECT username FROM dba_users WHERE username='ZHYU') LOOP
            sql_stmt := 'ALTER USER ' || user_rec.username || ' ACCOUNT UNLOCK';
                   
            -- 执行动态 SQL 查询
            EXECUTE IMMEDIATE sql_stmt;

            -- 输出解锁的用户
            DBMS_OUTPUT.PUT_LINE('User ' || user_rec.username || ' unlocked');
        END LOOP;
    END;
    /

    回复

    使用道具 举报

  • TA的每日心情
    开心
    2023-8-9 11:05
  •  楼主| 发表于 2023-12-9 06:44:10 来自手机 | 显示全部楼层
    DECLARE
       v_username VARCHAR2(30) := 'YOUR_USERNAME';
    BEGIN
       FOR session_rec IN (SELECT sid, serial# FROM v$session WHERE username = v_username AND logon_time < SYSDATE - 1/24) LOOP
          EXECUTE IMMEDIATE 'ALTER SYSTEM KILL SESSION ''' || session_rec.sid || ',' || session_rec.serial# || ''' IMMEDIATE';
       END LOOP;
    END;
    /
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    运维联盟俱乐部 ( 冀ICP备19036648号 )

    GMT+8, 2024-5-2 16:36 , Processed in 0.046318 second(s), 21 queries , Gzip On.

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

    快速回复 返回顶部 返回列表