在login.sql文件中设置sql*plus的环境(摘自《Oracle编程艺术》)

本文介绍如何通过设置SQL*Plus参数来优化Oracle数据库操作体验。包括调整输出格式、增强查询结果展示效果、设置编辑器及提高运行效率等实用技巧。
 
--将UE设置为默认编辑器
define _editor="C:Program FilesUltraEditUedit32.exe"
--默认在打开dbms_output,同时也将默认缓冲区大小设置得尽可能大
set serveroutput on size 1000000
--假脱机输入文本时,会去除文本行两端的空格,而且行宽不定。
--
如果设置为OFF(默认设置),假脱机输入的文本行宽则等于所设置的linesize
set trimspool on
--设置选择LONG、COLB列时显示的默认字节数
set long 5000
--设置sql*plus显示的文本行宽为100个字符
set linesize 100
--pagesize可以控制sql*plus多久打印一次标题
set pagesize 9999
--设置由autotrace得到的解释计划输出(explain plan output)的默认宽度。a80通常足以放下整个计划。
column plan_plus_exp format a80
column golbal_name new_value gname
set termout off
define gname
=idle
--告诉sql*plus取得global_name列中的最后一个值,并将这个值赋给替换变量gname。
column global_name new_value gname
select lower(user|| '@' || substr(global_name,1,
   decode(dot,
0,length(global_name),dot-1)) global_name
   
from (select global_name,instr(global_name,'.') dot from global_name);
--设置sql*plus提示符
set sqlprompt '&gname> '
set termout on
### SQL*Plus 启动过程中的配置文件作用 当 SQL*Plus 被启动时,或者每当发出 `CONNECT` 命令重新建立数据库连接时,程序会依次尝试读取并执行两个特定的脚本文件——全局站点配置文件 (`glogin.sql`) 和用户本地配置文件 (`login.sql`)。这些文件的存在使得管理员和最终用户能够在无需重复手动设置的情况下享受一致性的体验。 #### 配置文件的作用 - **glogin.sql**: 此文件一般存储于 `$ORACLE_HOME/sqlplus/admin/` 目录之下,适用于整个 Oracle 安装环境下的所有用户共享相同的初始化参数或常用命令集合[^2]。例如,可以通过此文件统一对所有用户的 SQL 输出格式进行调整。 - **login.sql**: 用户级别的自定义化入口点,通常放置在其工作目录之中。该文件允许个体开发者依据自身喜好来覆盖部分甚至全部由 glogin.sql 所决定的行为特性[^2]。比如改变默认编辑器的选择或是重写某些显示规则等。 --- ### SQL*Plus 19.12 版本的功能特点与典型应用场景 作为 Oracle 数据库客户端工具集的一员,SQL*Plus 提供了一个轻量级却极其强大的接口用于访问关系型数据管理系统的核心资源和服务。具体到版本号为 19c (即内部标记为 v19.*) 的情况而言,它继承和发展了许多前辈们积累下来的优势特征之外还有不少新增亮点值得探讨: #### 功能要点总结 1. **基础交互支持** - 支持标准 ANSI-SQL 查询语法解析及执行; - 实现 PL/SQL 块结构编写调试能力; 2. **高级报表生成功能** - 利用灵活多变的结果集呈现方式满足多样化的业务统计分析需求; 3. **批量作业调度管理** - 结合外部脚本语言完成定时任务自动化运维目标达成可能性极大提升; 4. **安全性强化措施** - 加密传输通道保障敏感通信内容不泄露风险降低显著; 5. **兼容性扩展改进** - 更好地适配最新一代硬件架构从而获得更优性能表现潜力无限挖掘空间广阔; 6. **用户体验优化细节打磨** - 新增多项便捷指令简化日常繁琐操作流程耗时缩短效果立竿见影; 7. **国际化支持加强** - 多种语言界面切换无障碍沟通桥梁搭建完毕随时待命服务全球客户群体无压力; 8. **诊断调试辅助手段丰富完善** - 内嵌详尽错误消息解释文档帮助快速定位解决问题效率倍增事半功倍成果斐然可期; #### 使用场景举例说明 - **开发测试阶段**:程序员利用其简易直观的操作界面对新编写的存储过程逻辑正确与否予以验证评估价值非凡不可替代; - **生产维护环节**:DBA 凭借强大而稳定的远程控制权限及时响应各类突发状况确保系统平稳运行状态持续在线至关重要不可或缺; - **数据分析领域**:商业智能分析师借助高效的数据提取转换加载ETL流程构建实时动态监控仪表盘助力决策层制定精准战略规划方向明确清晰可见一斑; ```python # 示例 Python 脚本调用 sqlplus 并传递必要认证信息实现无人值守式定期备份恢复方案部署实施案例分享片段示意如下: import subprocess def backup_database(): try: result = subprocess.run(['sqlplus', '-s', 'username/password@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=myhost)(PORT=myport)))(CONNECT_DATA=(SID=mysid)))'], input="alter system checkpoint;\nexit;", text=True, check=True) print(result.stdout) except Exception as e: print(f"An error occurred during database backup: {e}") backup_database() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值