我正在尝试从无法修改环境变量和tnsnames.ora的Linux服务器连接Oracle数据库。
我正在使用以下代码进行连接,这可以正常工作,并且能够使用sqlplus连接数据库。
SELECT user_id,GROUP_CONCAT(CONCAT(post_id,'(',point,')') SEPERATOR ' | ') as post_points,SUM(point) as total_points FROM table_name GROUP BY user_id
现在我无法找到任何解决方案,我该如何执行它,这样就不必每次都手动执行它,并且我也不想与其他任何人共享密码。我想使用sqlplus从外壳程序脚本连接数据库以后台处理数据。
任何线索都是可观的。预先感谢。
答案 0 :(得分:1)
最干净的方法是使用Oracle Wallet存储数据库密码,以便脚本可以使用它们。 否则,如果您可以以oracle产品所有者的身份登录(大多数情况下为“ oracle”)并且它属于“ dba”组,则可以以sys身份进行连接而无需输入密码(sqlplus / sysdba),但是它具有特权访问权限,请不要不能将其用于业务流程。
答案 1 :(得分:0)
忽略密码;系统会提示您输入它,但是它是不可见的(Windows示例,但在这种情况下无关紧要):
M:\>sqlplus scott@orcl
SQL*Plus: Release 11.2.0.1.0 Production on ╚et Tra 11 13:01:35 2019
Copyright (c) 1982, 2010, Oracle. All rights reserved.
Enter password:
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options
SQL>
当然,这要求您每次输入。如果将其存储在某个地方,其他任何人都可以看到它。也许有办法,但我不知道。