2014-10-20 2 views
1

기존 Oracle EX 10g 데이터베이스에 연결하려고합니다. Rake와 oci는 작동하는 것처럼 보이지만 콘솔 충돌이 발생합니다.레일 oci8 연결은 레이크에서 작동하지만 콘솔에서는 작동하지 않습니다.

내 환경에 대한 몇 가지 물건 : 10.2.0.1.0 4.1.6

  • 오라클 데이터베이스 10g Express Edition을 출시

    • 를 CentOS 5.8
    • 루비 2.0.0p481
    • 레일

      보석

        ,
      • 액티브는-oracle_enhanced 어댑터 1.5.5
      • 루비 OCI8 2.1.7

      을 나는 성공적으로 '레이크 DB를 : 스키마 : 덤프'를 실행 한 기존의 스키마를 얻을 수 있습니다.

      정확한 출력을 제공하는 irb의 테스트 출력이 있습니다.

      [[email protected] TestOracle]# irb 
      [?1034hirb(main):001:0> require 'oci8' 
      Warning: NLS_LANG is not set. fallback to US7ASCII. 
      => true 
      irb(main):003:0> oci = OCI8.new('user****name', 'pass****word', 'localhost') 
      => #<OCI8:BEESMART> 
      irb(main):004:0> oci.exec("select s_user_name, s_user_auto_login from s_user") do |record| 
      irb(main):005:1* puts record.join(',') 
      irb(main):006:1> end 
      John,0 
      test,1 
      => 2 
      irb(main):007:0> 
      

      하지만 '레일 콘솔'을 실행하려고하면 다음과 같은 메시지가 표시됩니다.

      [[email protected] models]# rails console 
      Warning: Running `gem pristine --all` to regenerate your installed gemspecs (and deleting then reinstalling your bundle if you use bundle --path) will improve the startup performance of Spring. 
      [[email protected] models]# oci8lib.c:134:in oci8lib_200.so: OCI Library Initialization Error - /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/lib/libclntsh.so.10.1 (OCIError) 
      from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `block in require' 
      from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:232:in `load_dependency' 
      from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `require' 
      from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/ruby-oci8-2.1.7/lib/oci8.rb:70:in `<top (required)>' 
      from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `require' 
      from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `block in require' 
      from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:232:in `load_dependency' 
      from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `require' 
      from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activerecord-oracle_enhanced-adapter-1.5.5/lib/active_record/connection_adapters/oracle_enhanced_oci_connection.rb:4:in `<top (required)>' 
      from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `require' 
      from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `block in require' 
      from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:232:in `load_dependency' 
      from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `require' 
      from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activerecord-oracle_enhanced-adapter-1.5.5/lib/active_record/connection_adapters/oracle_enhanced_connection.rb:112:in `<top (required)>' 
      from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `require' 
      from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `block in require' 
      from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:232:in `load_dependency' 
      from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `require' 
      from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activerecord-oracle_enhanced-adapter-1.5.5/lib/active_record/connection_adapters/oracle_enhanced_adapter.rb:33:in `<top (required)>' 
      from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `require' 
      from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `block in require' 
      from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:232:in `load_dependency' 
      from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `require' 
      from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activerecord-oracle_enhanced-adapter-1.5.5/lib/activerecord-oracle_enhanced-adapter.rb:12:in `block in <class:OracleEnhancedRailtie>' 
      from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activesupport-4.1.6/lib/active_support/lazy_load_hooks.rb:38:in `instance_eval' 
      from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activesupport-4.1.6/lib/active_support/lazy_load_hooks.rb:38:in `execute_hook' 
      from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activesupport-4.1.6/lib/active_support/lazy_load_hooks.rb:45:in `block in run_load_hooks' 
      from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activesupport-4.1.6/lib/active_support/lazy_load_hooks.rb:44:in `each' 
      from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activesupport-4.1.6/lib/active_support/lazy_load_hooks.rb:44:in `run_load_hooks' 
      from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activerecord-4.1.6/lib/active_record/base.rb:326:in `<module:ActiveRecord>' 
      from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activerecord-4.1.6/lib/active_record/base.rb:23:in `<top (required)>' 
      from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/spring-1.1.3/lib/spring/application.rb:314:in `active_record_configured?' 
      from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/spring-1.1.3/lib/spring/application.rb:248:in `disconnect_database' 
      from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/spring-1.1.3/lib/spring/application.rb:97:in `preload' 
      from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/spring-1.1.3/lib/spring/application.rb:140:in `serve' 
      from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/spring-1.1.3/lib/spring/application.rb:128:in `block in run' 
      from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/spring-1.1.3/lib/spring/application.rb:122:in `loop' 
      from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/spring-1.1.3/lib/spring/application.rb:122:in `run' 
      from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/spring-1.1.3/lib/spring/application/boot.rb:18:in `<top (required)>' 
      from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require' 
      from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require' 
      from -e:1:in `<main>' 
      

      는 비슷한 질문 here있다 그러나 나는 LD_LIBRARY_PATH를 내 쉘에서 설정 ORACLE_HOME. 레일 콘솔이 다른 변수 세트를 사용할 수 있습니까?

      다음은

      은 IRB 같이 'OCI8'

      을 필요로 작업하기 전에 추가해야 레일 콘솔에서 내 데이터베이스 연결 설정

      development: 
          adapter: oracle_enhanced 
          database: xe 
          username: user****name 
          password: pass****word 
      
  • 답변

    0

    입니다. 내 경우 모두 OK OK