首页 > 数据库 >[20240815]oracle21c环境变量ORACLE_PATH与SQLPATH(windows).txt

[20240815]oracle21c环境变量ORACLE_PATH与SQLPATH(windows).txt

时间:2024-08-16 21:39:10浏览次数:16  
标签:tmp windows study oracle21c 20240815 sql ORACLE PATH SQLPATH

[20240815]oracle21c环境变量ORACLE_PATH与SQLPATH(windows).txt

--//我记忆以前测试过这个问题,当时是家里的笔记本,安装oracle 12.2c for windows.OS:windows 7,发现无法访问SQLPATH或者
--//ORACLE_PATH环境变量定义的路径下login.sql文件.我当时解决办法就是登录手工执行init.sql命令,主要原因我自己也不常开启数据
--//库.

--//参考链接:[20230124]12c访问login.sql脚本.txt=>
--//当时的总结如下:
--//1.windows下至少我的测试版本12c对于ORACLE_PATH,SQLPATH定义无效,指缺省访问login.sql文件,以下情况类似.
--//2.linux下11g版本可以定义ORACLE_PATH,SQLPATH有效,建议仅仅使用ORACLE_PATH环境变量.
--//3.linux下12c以后版本仅仅定义ORACLE_PATH有效.
--//4.也是oracle出于安全的原因做出这样的修改操作.
--//4.链接https://blog.dbi-services.com/oracle-12cr2-changes-for-login-sql/给出许多测试.
--//5.我个人建立不要ORACLE_PATH或者SQLPATH定义多个访问目录路径,这样容易混乱.

--//这次遇到的情况不同客户端:OS windows 10,sqlplus的版本是21c, 数据库是21c for linux, 可以访问SQLPATH或者ORACLE_PATH环境
--//变量的login.sql脚本,到底一个起作用看下面的测试.

--//oracle升级新版本,总是做一些改进,测试看看windows 10,客户端21c 的sqlplus的情况.

1.环境:
[email protected]:1521/book> @ prxx
==============================
PORT_STRING                   : x86_64/Linux 2.4.xx
VERSION                       : 21.0.0.0.0
BANNER                        : Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production
BANNER_FULL                   : Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0
BANNER_LEGACY                 : Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production
CON_ID                        : 0
PL/SQL procedure successfully completed.

2.测试环境建立:

d:\tmp\study>mkdir ORACLE_PATH
d:\tmp\study>mkdir SQLPATH

--//分别在两个子目录上建立login.sql文件.
d:\tmp\study>cat ORACLE_PATH\login.sql
prompt Hello from D:\tmp\study\ORACLE_PATH\login.sql

d:\tmp\study>cat SQLPATH\login.sql
prompt Hello from D:\tmp\study\SQLPATH\login.sql

--//测试脚本:
d:\tmp\study>cat o1.bat
rem @echo off
set ORACLE_PATH=D:\tmp\study\ORACLE_PATH
set SQLPATH=D:\tmp\study\SQLPATH
echo select sysdate from dual ; | sqlplus -s -l  system/[email protected]:1521/book

3.测试:
--//看看使用那个环境变量参数或者那个优先使用:

d:\tmp\study>o1
d:\tmp\study>rem @echo off
d:\tmp\study>set ORACLE_PATH=D:\tmp\study\ORACLE_PATH
d:\tmp\study>set SQLPATH=D:\tmp\study\SQLPATH
d:\tmp\study>echo select sysdate from dual ;   | sqlplus -s -l  system/[email protected]:1521/book
Hello from D:\tmp\study\SQLPATH\login.sql
SYSDATE
-------------------
2024-08-15 16:09:35
--//很明显使用的是SQLPATH环境变量,ORACLE_PATH无效.

d:\tmp\study>sqlplus -s -l system/[email protected]:1521/book
Hello from D:\tmp\study\SQLPATH\login.sql
@login
Hello from D:\tmp\study\SQLPATH\login.sql
--//执行login.sql,查询路径也是SQLPATH环境变量.
--//改名ORACLE_PATH/login.sql
D:\tmp\study> mv ORACLE_PATH/login.sql ORACLE_PATH/login1.sql

--//切换到sqlplus界面执行:
@login1
SP2-0310: unable to open file "login1.sql"

@d:/tmp/study/ORACLE_PATH/login1.sql
Hello from D:\tmp\study\ORACLE_PATH\login.sql

--//修改回来
D:\tmp\study> mv ORACLE_PATH/login1.sql ORACLE_PATH/login.sql

--//说明:在windows下oracle 21c的sqlplus客户端不会使用ORACLE_PATH环境访问sql脚本.

4.-R 3 参数测试:
d:\tmp\study>o1
d:\tmp\study>rem @echo off
d:\tmp\study>set ORACLE_PATH=D:\tmp\study\ORACLE_PATH
d:\tmp\study>set SQLPATH=D:\tmp\study\SQLPATH

d:\tmp\study>echo select sysdate from dual ;   | sqlplus -s -l  -R 3 system/[email protected]:1521/book
SP2-0738: Restricted command "@@ (START)" not available
SP2-0738: Restricted command "@@ (START)" not available
--//注:这里出现错误是访问ORACLE_HOME目录下sqlplus/admin/glogin.sql.
--//该文件就2行,出现2次@@,如果在glogin.sql里面定义一些set或者sql命令还是会执行的,大家可以自行测试。
--//也就是最高级别-R 3 依旧会访问并执行ORACLE_HOME目录下sqlplus/admin/glogin.sql脚本,但是里面@或者@@调用的脚本不会执行.
SYSDATE
-------------------
2024-08-15 16:22:37

--//我的glogin.sql脚本就2行:
@@zzlogin.sql
@@128.txt

--//测试:-R 1,2 好像没有什么效果.与没有使用没有什么区别.
d:\tmp\study>o1
d:\tmp\study>rem @echo off
d:\tmp\study>set ORACLE_PATH=D:\tmp\study\ORACLE_PATH
d:\tmp\study>set SQLPATH=D:\tmp\study\SQLPATH
d:\tmp\study>echo select sysdate from dual ;   | sqlplus -s -l  -R 2 system/[email protected]:1521/book
Hello from D:\tmp\study\SQLPATH\login.sql
SYSDATE
-------------------
2024-08-16 15:46:16
--//没有前面的SP2-0738提示,说明会访问执行$ORACLE_HOME/sqlplus/admin/glogin.sql脚本,并且里面@或者@@调用的脚本会执行.
--//其次会访问并执行SQLPATH环境变量设置目录的loing.sql脚本.

5.总结:
--//在windows下21c的sqlplus客户端,设置SQLPATH有效.ORACLE_PATH无效.
--//sqlplus选择-R 3参数,依旧会访问ORACLE_HOME目录下sqlplus/admin/glogin.sql,里面@或者@@调用的脚本不会执行.
--//也不会访问SQLPATH的设置的目录.

--//我感觉不管怎么环境,最好两个环境变量都设置一样.
--//个人建议不要ORACLE_PATH或者SQLPATH定义多个访问目录路径,这样容易混乱.

标签:tmp,windows,study,oracle21c,20240815,sql,ORACLE,PATH,SQLPATH
From: https://www.cnblogs.com/lfree/p/18363655

相关文章

  • [20240816]oracle21c环境变量ORACLE_PATH与SQLPATH(linux).txt
    [20240816]oracle21c环境变量ORACLE_PATH与SQLPATH(linux).txt--//我记忆以前测试过这个问题,当时是家里的笔记本,安装oracle12.2cforwindows.OS:windows7,发现无法访问SQLPATH或者--//ORACLE_PATH环境变量定义的路径下login.sql文件.我当时解决办法就是登录手工执行init.sql......
  • MySQL在Windows和Ubuntu上的安装与远程连接配置指南
    MySQL是一种开源的关系型数据库管理系统,被广泛应用于各种应用程序和网站中。MySQL5.7虽不是MySQL的最新版本,但仍具有许多新功能和改进,提供了更高的性能、安全性和可靠性。本文将详细介绍MySQL5.7,并提供在Ubuntu 22.04上安装、初始化配置和开通远程访问的步骤。在Ubuntu22......
  • windows 内核驱动通过哪些方式直接访问硬件
    Windows内核驱动可以通过以下几种主要方式直接访问硬件:1.内存映射I/O(Memory-MappedI/O,MMIO)  -使用MmMapIoSpace函数将物理地址映射到虚拟地址空间  -直接读写映射后的内存地址来访问硬件寄存器  示例:  ```c  PHYSICAL_ADDRESSphysicalAddre......
  • Linux 做 SSH 免密连接 Windows 踩坑记录
    做LinuxSSH免密连接Windows10时踩到个坑,按照教程做了以下操作:把Linux上生成的id_rsa.pub复制到了Windows10下的C:/Users/<用户名>/authorized_keys;修改C:\ProgramData\ssh\sshd_config,注释以下两行#MatchGroupadministrators#AuthorizedKeysFile__PR......
  • utilman.exe 是 Windows 操作系统中的一个系统工具程序,全称为 Utility Manager。它的
    utilman.exe(实用工具管理器)在Windows系统中主要用于启动辅助功能工具,但它也曾经被发现存在一些安全漏洞。这些漏洞通常利用utilman.exe的特性进行权限提升或绕过安全机制。以下是一些已知的与utilman.exe相关的公开漏洞:1. CVE-2019-0708(BlueKeep)描述:这个漏洞影响了......
  • Ettercap 是一个用于网络嗅探和中间人攻击的开源工具,主要用于网络安全测试和分析。它
    Ettercap是一个用于网络嗅探和中间人攻击的开源工具,主要用于网络安全测试和分析。它支持多种平台,包括Linux、Windows和macOS。Ettercap可以用来监视、分析、和修改网络流量,通常用于测试和审计网络的安全性。以下是Ettercap的一些主要功能和特点:主要功能嗅探和分析网络......
  • MNN框架在windows上的部署
    一、MNN.lib文件等的生成算是第一次接触MNN框架部署这部分内容吧,对整个流程都不是很理解,故先从官方文档入手先从github下载官方的项目,地址为:https://github.com/alibaba/MNN使用visualstudio的powershell打开,执行官网给出的指令cdpath/to/MNNpowershell./schema/generat......
  • 实现Windows之间(win10)的桌面连接的三步走方法
    实现Windows之间(win10)的远程桌面连接的三步走方法‍目录‍目录实现Windows之间(win10)的远程桌面连接的三步走方法目录环境step1:打开两台Windows电脑的远程桌面连接step2:运行窗口输入mstsc​命令后,打开远程桌面连接窗口step3:输入目标计算机的IP地址后,再输入对应的用户名和密码......
  • Windows操作系统远程桌面端口修改脚本
    change_rdsport_CN.bat:@echooffcolorf0echo修改远程桌面3389端口(支持Windows2003,2008,2008R2,2012,2012R2,7,8,10)echo自动添加防火墙规则set/pc=请输入新的端口:if"%c%"==""gotoend:editnetshadvfirewallfirewalladdrulename="RemotePortNum......
  • 实现Windows之间(win10)的桌面连接的三步走方法
    实现Windows之间(win10)的桌面连接的三步走方法‍目录‍目录实现Windows之间(win10)的桌面连接的三步走方法目录环境step1:打开两台Windows电脑的桌面连接step2:运行窗口输入mstsc​命令后,打开远程桌面连接窗口step3:输入目标计算机的IP地址后,再输入对应的用户名和密码即可连接‍......