代码之家  ›  专栏  ›  技术社区  ›  JulesLt

有人让Oracle Pro*C使用非Oracle用户帐户在OS X 10.6上工作吗

  •  0
  • JulesLt  · 技术社区  · 14 年前

    我已经在10.6上成功安装了本机Oracle,并且可以使用“Oracle”帐户(即安装软件的同一操作系统用户)成功编译和执行示例Pro*C代码。那是一份有趣的工作。它甚至可以和叮当声一起工作。

    但是,在我们正常的开发环境中,源代码、构建脚本、生成文件等都属于不同的Unix组和用户—可以访问一组受限制的Oracle工具(sqlplus、exp、proc等)。

    尝试从oracle安装中使用sqlplus时出现了(已知问题)

    dyld: Library not loaded: /b/227/sqlplus/lib/libsqlplus.dylib
    

    我放弃了,转而使用instantclient。

    不幸的是,instantclient SDK仅限于OCCI—它不包括pro*c编译器。

    现在我得到了一个核心转储(在oracle用户下运行时不会发生这种情况)

    System default option values taken from:    
    /Users/oracle/product/10.2.0/db_1/precomp/admin/pcscfg.cfg
    
    INTERNAL ERROR: Failed assertion [PGE Code=90105]
    
    Segmentation fault
    

    1 回复  |  直到 14 年前
        1
  •  1
  •   JulesLt    14 年前

    我遇到的第一个问题是通过授予对oracle安装下的/precomp目录和子目录的读访问权限来解决的(然后为我的下一个问题编辑了这个问题)。

    默认情况下,proc编译器写入源代码文件所在的目录,而不是本地目录。简单修复-按路径指定目标文件名。这成功地生成了.c文件。

    要编译它,需要访问并指定要链接的正确库(instantclient 64位库在这里可以使用)。