我安装了32位和64位Oracle 11g驱动程序.我搜索我的电脑,寻找名为"tnsnames.ora"的文件,并在以下位置找到3个:
1. C:\Oracle\product\11203_32bit\CLIENT_1\NETWORK\ADMIN
2. C:\Oracle\product\11203_64bit\CLIENT_1\NETWORK\ADMIN
3. C:\Windows\TNS
Run Code Online (Sandbox Code Playgroud)
tnsnames.ora文件的第三个位置的存在让我感到惊讶.
我的PC上安装了以下Oracle客户端:
"C:\Program Files (x86)\Quest Software\Toad for Oracle 11.6\Toad.exe"
"C:\Program Files\Devart\dbForge Studio Express for Oracle\dbforgeoracle.exe"
Run Code Online (Sandbox Code Playgroud)
基于每个程序的位置(Program Files(x86)与c:\ Program Files),这向我建议,32位程序Toad应该使用32位驱动程序,而dbForge应该使用64位驱动程序.
dbForge似乎使用位置#2或#3中的tnsnames.ora文件.我知道这一点,系统地重命名除了一个tns文件之外的所有文件,然后在尝试使用app创建新连接时检查从文件中读取的连接名是否可用.
但是,TOAD似乎只识别位置#3中的tnsnames.ora文件,它根本无法识别位置2中的tnsnames.ora文件!(因为它是一个32位程序,我没想到它会识别位置2中的tns文件,就是这种情况).为了清楚起见,TOAD测试总结了TOAD测试,TOAD只识别位置3中的tns文件.
其他同事在他们的机器上没有位置3的tns文件.我不知道为什么我这样做.当我运行Toad时,它会显示以下2个Home,其中32位Home是活动的.
OraClient11g_home1 (11.2.0.3)
ORACLE_HOME:C:\app\C39293\product\11.2.0\client_1
ORACLE_HOME_NAME:OraClient11g_home1
ORACLE_HOME_KEY:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraClient11g_home1
ORACLE_SID:
NLS_LANG:AMERICAN_AMERICA.WE8MSWIN1252
SQLPATH:
LOCAL:
Client DLL:C:\app\C39293\product\11.2.0\client_1\oci.dll
TNSNames.ora:
SQLNet.ora:
LDAP.ora:
Login.sql:
GLogin.sql:
In system PATH:No
Home is valid:No
OraClient11g_home1_32bit (11.2.0.3)
ORACLE_HOME:c:\oracle\product\11203_32bit\CLIENT_1
ORACLE_HOME_NAME:OraClient11g_home1_32bit
ORACLE_HOME_KEY:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraClient11g_home1_32bit
ORACLE_SID:
NLS_LANG:AMERICAN_AMERICA.WE8MSWIN1252
SQLPATH:c:\oracle\product\11203_32bit\CLIENT_1\dbs
LOCAL:
Client DLL:c:\oracle\product\11203_32bit\CLIENT_1\bin\oci.dll
TNSNames.ora:
SQLNet.ora:
LDAP.ora:
Login.sql:
GLogin.sql:c:\oracle\product\11203_32bit\CLIENT_1\sqlplus\admin\glogin.sql
In system PATH:Yes
Run Code Online (Sandbox Code Playgroud)
Q1: OraClient11g_home1是我的64位家用还是我安装了两个Oracle客户端?
Q2:为什么32位TOAD不使用位置#1中的tns而不是仅使用位置#3中的tns?
问题3:如果我离开位置3的tns文件,dbForge和TOAD都可以工作,但我想知道为什么这样我就能准确地理解如何将tns信息从一台机器移动到另一台机器.
在"全局属性"中的Jenkins配置(http:// JenkinsURL/configure)中,我定义了一些"环境变量".
如何在Groovy Script控制台(http:// JenkinsURL/script)中访问它们?
我试图找到合适的解决方案(例如,在Jenkins构建步骤(Windows)中从Groovy脚本中访问构建环境变量的解决方案)但似乎它们都不适用于我.
我试过例如:
System.getenv("myVar")
Run Code Online (Sandbox Code Playgroud)
和
manager.build.getEnvironment(listener).get('myVar') //no manager error
Run Code Online (Sandbox Code Playgroud)
和
import jenkins.model.Jenkins
Jenkins.instance.getProperty('myVar') //No signature of method: hudson.model.Hudson.getProperty() is applicable for argument types: (java.lang.String)
Run Code Online (Sandbox Code Playgroud)
和
import jenkins.model.Jenkins
Jenkins.instance.ParameterValue("DEV_local")
Run Code Online (Sandbox Code Playgroud) 在执行恢复缓冲区或使用自动恢复模式后,如何让Emacs保留其缓冲区的撤消历史记录?
在Vim中,如果在光盘上更改了缓冲区中打开的文件,Vim会提示我重新加载该文件.然后,如果我愿意的话,我可以简单地点击"你"来撤消重新加载,甚至可以从那时起再往前走.当我恢复缓冲区时,Emacs似乎丢弃了所有撤消信息.
Ubuntu 11.10上的默认Python版本是2.7,但我正在寻找2.6.如何将其设置为默认值以及可执行文件位于何处?
我键入which python2.6但它什么也没有返回,但我确实有一个python2.6文件夹/usr/lib/python2.6.但它看起来不像是在同一条路径上的python2.7 /usr/lib/.在python2.6中,有两个文件夹:dist-packages和lib-dynload.
其实我正在配置PyDev,它要求我指定python2.6可执行文件的位置.python2.7可执行文件只需使用自动配置即可轻松定位,因为它是默认设置.
我注意到IPython有一些非常奇怪的解析表现为不合法的Python语法.
In [1]: ,,b = 1,2,3
Out[1]: (',b', '=', '1,2,3')
Run Code Online (Sandbox Code Playgroud)
分号也有类似的东西,但它并没有分成一个元组.
In [4]: ;;foo = 1;2;3
Out[4]: ';foo = 1;2;3'
Run Code Online (Sandbox Code Playgroud)
虽然它看起来;意味着该行的其余部分被视为文字字符串,但情况并非总是如此:
In [5]: ,foo
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-5-f2137ad20ab5> in <module>()
----> 1 foo("")
NameError: name 'foo' is not defined
In [6]: ;foo
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-6-f2137ad20ab5> in <module>()
----> 1 foo("")
NameError: name 'foo' is not defined
Run Code Online (Sandbox Code Playgroud)
为什么IPython会这样做?这是记录还是可配置的?
我通过Rust的FFI调用LLVM API.LLVMPrintModuleToString 使用strdup创建一个字符串.但是,当我将指针包装在一个中时CString,当Rust丢弃它时会出现错误.
#![feature(cstr_memory)]
use std::ffi::CString;
extern crate llvm_sys as llvm;
fn main() {
let llvm_ir_cstring;
unsafe {
let module = llvm::core::LLVMModuleCreateWithName(b"nop\0".as_ptr() as *const _);
let llvm_ir_char_ptr = llvm::core::LLVMPrintModuleToString(module);
llvm::core::LLVMDisposeModule(module);
llvm_ir_cstring = CString::from_ptr(llvm_ir_char_ptr);
}
println!("llvm_ir_cstring: {:?}", llvm_ir_cstring);
}
Run Code Online (Sandbox Code Playgroud)
Valgrind错误:
==10413== Invalid read of size 4
==10413== at 0x4870586: pthread_mutex_lock (in /usr/lib/libpthread-2.21.so)
==10413== by 0x17F89B: je_arena_dalloc_small (in /home/wilfred/projects/bfc/target/debug/bfc)
==10413== by 0x178C30: je_sdallocx (in /home/wilfred/projects/bfc/target/debug/bfc)
==10413== by 0x10FA57: heap::imp::deallocate::h1fb92d59333c497bkja (heap.rs:268)
==10413== by 0x10F999: heap::deallocate::h5680e3fedc9e96320da (heap.rs:89)
==10413== by 0x10F929: …Run Code Online (Sandbox Code Playgroud) 我无法理解汇编指令retq返回的位置.
据我所知,当我的普通代码执行时,它会返回到堆栈中指定的地址.但它如何知道堆栈中的返回地址位于何处?
简而言之,它是否使用rbp或esp来查找堆栈中的地址?
这两个文件之间的实际区别是什么,groovy-all-2.2.1.jar并且groovy-all-2.2.1-indy.jar在GROOVY_HOME\embeddable目录中可用?
到目前为止我还没有使用过indy文件,我很想知道它的用途.
谢谢!
Python代码对象具有一个属性co_cellvars.PyPy的字节码解释器的文档通常使用术语Cell.
在其他语言中,Rust 提供了Cell数据类型.谷歌搜索表明他们以某种方式与封闭有关.
在编程语言实现的上下文中,什么是单元?细胞解决了什么问题?