Oracle OCI programming and Borland C++ Builder
As you may know, Oracle dropped support for Borland Compilers in OCI
some time back. Well, it isn't all that hard to set up again.
I'm running 9i Release 2 Enterprise Edition on this PC at work and I am
using Borland C++ Builder 6 to 'play' with OCI programming - I intend to
build a set of components eventually, but I need to know what I'm doing
first !
I remember trying in the past to get OCI to work - but had no luck,
however, this time I decided not to give in so easily. I was depressed
to find that the old Borland folder under <oracle_hjome>\oci\lib has
gone - looks like only MS Visual C is supported - and we all know that
MS and Borland have a different OMF format and there is much wailing and
gnashing of teeth to get Borland talking to DLLs etc created with MSVC
and vice versa.
There are docs on Metalink which go into great detail about these
differences and how it can screw up your life to use a Borland compiler
- but I suspect these are now out of date.
Here is what you have to do instead (the following uses my paths -
adjust for your setup) :
Open a DOS window
cd e:\oracle\ora92\oci\lib
mkdir borland
cd borland
Assuming that the CBuilder bin directory is on your path .....
implib -a oci.lib <oracle_home>\bin\oci.dll
exit
That has created an import library to be added to any OCI projects you
want to create. The '-a' bit is required as it prepends an underscore to
the exported module names in the dll. This is what used to cause so many
problems with MS/Borland libraries and stuff in the past.
The rest is simple, run up C++ Builder and open one of the Oracle
samples - I used CDemo6 - you'll be asked to create a project to run it,
do so then save it as BOR_CDemo6.
Project | options and on the directories tab, add
<oracle_home>\oci\include to the includes path.
Then Project | add to project and add <oracle_home>\oci\borland\oci.lib
to the project.
Compile & run - et viola (as French musicians would
相关文档:
update t_tmprpt_firstreplycosttime t
set (t.firstreplytime,
t.dealstaff,
t.firstreplyfailcontent)
= (select a.suggesttime,
a.suggester,
substr(a.remark,instr(a.remark,'】',1)+2)
from t_wf_suggesthis a
......
Sql中两个“-”表示注释的开始。
拼接运算符:”||”,注意:只有在所有的运算符为null时,拼接的结果是null。
比较运算符用于比较两个值或表达式,给出一个布尔型的结果 true,false,null.
比较运算符:
=
!= <> ^=
[not]in 包含
Any some 将一个值与列表中的每个值或者 ......
Oracle的约束
* 如果某个约束只作用于单独的字段,即可以在字段级定义约束,也可以在表级定义约束,但如果某个约束作用于多个字段,
必须在表级定义约束
* 在定义约束时可以通过CONSTRAINT关键字为约束命名,如果没有指定,ORACLE将自动为约束建立默认的名称
定义primary key约束(单个字段)
create table ......
emctl start dbconsole 是10g的启动console服务的命令
将OEM服务停止emctl stop dbconsole
emctl start dbconsole启动EM console服务,使用前需要先设置ORACLE_SID环境变量
emctl stop dbconsole停止EM console服务,使用前需要先设置ORACLE_SID环境变量
关闭数据库后应该首先用sysdba登陆,这样就进入了sys模式. ......