免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: zwrvvv
打印 上一主题 下一主题

【求助】echo $ORACLE_HOME [复制链接]

论坛徽章:
0
11 [报告]
发表于 2010-01-20 16:31 |只看该作者

回复 #9 ywlscpl 的帖子

在orale用户下是没问题的,
结果如下:

use_indirect_data_buffers            boolean     FALSE
user_dump_dest                       string      /oracle/app/diag/rdbms/ora11g/
                                                 ora11g1/trace
utl_file_dir                         string
workarea_size_policy                 string      AUTO
xml_db_events                        string      enable
SQL>
OPEN_MODE
----------
READ WRITE

SQL>
VALUE
----------------------------------------------------------------
WE8ISO8859P1


========================

论坛徽章:
0
12 [报告]
发表于 2010-01-20 16:32 |只看该作者

回复 #10 Shell_HAT 的帖子

多谢指教

select open_mode from v$database;
select value from v$nls_parameters where parameter like 'NLS_CHARACTERSET';

这样的话shell肯定要对$database和$nls_parameters执行变量替换的,就跟1楼的问题一样

论坛徽章:
0
13 [报告]
发表于 2010-01-20 16:35 |只看该作者
那要如何不让shell认为$database是变量,用\$database也是不行。

论坛徽章:
0
14 [报告]
发表于 2010-01-20 16:54 |只看该作者

回复 #7 zwrvvv 的帖子

try
  1. function check ()
  2. {
  3. su - oracle -c 'sqlplus sys/oracle as sysdba <<EOF
  4. show parameter;
  5. select open_mode from v\$database;
  6. select value from v\$nls_parameters where parameter like 'NLS_CHARACTERSET';
  7. EOF'
  8. }
复制代码


我这里测试成功
  1. [root@Mylinux tmp]# ./mysh
  2. xx
  3. xx
  4. $o
  5. xx
  6. [root@Mylinux tmp]# cat mysh
  7. #!/bin/bash
  8. o="abc"
  9. su - root -c 'cat <<EOF
  10. xx
  11. xx
  12. \$o
  13. xx
  14. EOF'
复制代码

论坛徽章:
0
15 [报告]
发表于 2010-01-20 17:13 |只看该作者
原帖由 ywlscpl 于 2010-1-20 16:54 发表
try
function check ()
{
su - oracle -c 'sqlplus sys/oracle as sysdba  


你测试用例与LZ得不完全一样, 所以结论错误

论坛徽章:
0
16 [报告]
发表于 2010-01-20 17:14 |只看该作者
LZ, 用这个吧,应该没问题了:



function check ()
{
su - oracle -c "sqlplus sys/oracle as sysdba <<'EOF'
show parameter;
select open_mode from v\$database;
select value from v\$nls_parameters where parameter like 'NLS_CHARACTERSET';
EOF "
}

论坛徽章:
0
17 [报告]
发表于 2010-01-20 17:19 |只看该作者

【测试成功】

多谢各位高手相助,已解决之前的问题:
function check ()
{
su  - oracle -c "sqlplus sys/oracle as sysdba <<EOF
select open_mode from v\$database;
select value from v\$nls_parameters where parameter like 'NLS_CHARACTERSET';
EOF"
}
check

执行结果:==========》
SQL> select open_mode from v
                      *
ERROR at line 1:
ORA-04044: procedure, function, package, or type is not allowed here


SQL> select value from v where parameter like 'NLS_CHARACTERSET'
                  *
ERROR at line 1:

=======================================================================
修改su - oracle -c "command" =====>su - oracle -c 'command'


function check ()
{
su  - oracle -c 'sqlplus sys/oracle as sysdba <<EOF
select open_mode from v\$database;
select value from v\$nls_parameters where parameter like 'NLS_CHARACTERSET';
EOF'
}
check


执行结果==============
SQL>
OPEN_MODE
----------
READ WRITE

SQL> select value from v$nls_parameters where parameter like NLS_CHARACTERSET
                                                        *
ERROR at line 1:
...

论坛徽章:
0
18 [报告]
发表于 2010-01-20 17:23 |只看该作者

回复 #16 nhw_cs 的帖子

function check ()
{
su  - oracle -c "sqlplus sys/oracle as sysdba <<'EOF'
select open_mode from v\$database;
select value from v\$nls_parameters where parameter like 'NLS_CHARACTERSET';
EOF"
}
check


执行结果==============>

OPEN_MODE
----------
READ WRITE

SQL>
VALUE
----------------------------------------------------------------
WE8ISO8859P1

===========>
nhw_cs 兄的方法更好,多谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP