什么是proc,具体怎么用呀?工具是什么? ORACLE为C语言开发提供的预编译开发工具.PRO*C提供了类似于SQL语言的一些关键字来访问和操作数据库.包含PRO*C语句的文件必须经PRO*C预编译器编译后成为一般的语言文件. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 那用什么写‘包含PRO*C语句的文件’呀!是vc++吗? 安装oracle client自定义选择pro*c/c++预编译工具.用它可以编写pro*c程序,也可以用文本编辑 一般使用文本编写,如UNIX下使用VI编辑器 E:\oracle\ora92\precomp\demo\proc --这个路径下比较多例子 谢谢各位。最后问下,编译成了dsp文件后,有什么用处( 在那里可以调用,怎么调用),可以在pl/sql中调用吗? [转贴...] 在VC 中使用PRO*C 每个PRO*C 源文件一般由程序头和程序体两部分组成。程序头包含宿主变量(SQL 语句中所包含的变量)说明、通讯区定义和C 外部表示符的说明等。程序体一般是由若干函数组成,这些函数内含有SQL 语句(以EXEC SQL 起头的语句)。 PRO*C 支持的数据类型包括VARCHAR2( 变长字符串)、NUMBER( 二进制数)、INTGER( 有符号整数)、FLOAT( 浮点数)、STRING( 以NULL 结尾的字符串)、VARNUM( 变长二进制数)、LONG( 变长字符串)、VARCHAR( 变长字符串)、ROWID( 二进制值)、DATE( 定长日期/ 时间值)、VARRAW( 变长二进制数据)、RAW( 定长二进制数据) 、LONGRAW( 变长二进制数据)、UNSIGNED( 无符号整数)、LONGVARCHAR( 变长字符串)、LONGVARRAW( 变长二进制数据)、CHAR( 定长字符串)、CHARZ(C 中定长以NULL 结尾的字符串)、MLSLABEL( 变长二进制数据)。 在PRO*C 中不能使用'l' 或'u' 作词尾或Ɔx' 作词头修饰常量;在SQL 语句中使用单引号来定义字符串,用双引号来定义特殊的或小写字符的标识符( 如表名等);SQL 语句中不允许使用C 中的寻址、间接、位逻辑、复合赋值、?=、-、++、%、<<、>> 操作符并且用NOT、AND、OR、= 代替!、&&、||、==。 下面的程序是一个联结数据库的PRO*C 源程序例子。 #include < sqlca.h > //声明SQL通讯区 #include < string.h > #include < afxwin.h > EXEC SQL BEGIN DECLARE SECTION; VARCHAR username[20]; //声明宿主变量 VARCHAR password[20]; VARCHAR dbname[20]; EXEC SQL END DECLARE SECTION; void db_connect() { strcpy((char *)username.arr,"SCOTT"); username.len = strlen((char *)username.arr); strcpy((char *)password.arr,"TIGER"); password.len = strlen((char *)password.arr); strcpy((char *)dbname.arr,"SUNDB"); dbname.len = strlen((char *)dbname.arr); EXEC SQL WHENEVER SQLERROR STOP; //隐式异常处理 EXEC SQL CONNECT :username IDENTIFIED BY :password USING :dbname; /*if (sqlca.sqlcode != 0) //显式异常处理 { AfxMessageBox("\n与Oracle数据库连接失败!"); return; }*/ } 在VC 中使用PRO*C 时,先用PRO*C 编写所需的操作数据库的子程序,再运行PRO*C 预编译程序把PRO*C 源程序转成相应的CPP 源程序,将该程序插入到用户工程文件中并在需要对插入函数进行调用的模块中说明函数,然后就可以在此模块中调用所需的函数。 触发器update问题 32位的oracle数据库在64位的服务器操作系统下能识别多大内存? oracle中一个SQL语句的区别 多条记录 数据集合到一条记录 非unicode怎么转换成unicode oracle存储过程的动态参数问题 请教赋予权限grant问题 如何一次创建多个存储过程,函数,触发器? 请推荐几本好书,关于Oracle的!(谢谢) 修改时间请教 求在Oracle中要从一个视图中的一个字段更新另一个表中的字段怎么写啊???? 请大家推荐几本关于Oracle的基础书?
是vc++吗?
用它可以编写pro*c程序,也可以用文本编辑
最后问下,编译成了dsp文件后,有什么用处( 在那里可以调用,怎么调用),可以在pl/sql中调用吗?
每个PRO*C 源文件一般由程序头和程序体两部分组成。程序头包含宿主变量(SQL 语句中所包含的变量)说明、通讯区定义和C 外部表示符的说明等。程序体一般是由若干函数组成,这些函数内含有SQL 语句(以EXEC SQL 起头的语句)。
PRO*C 支持的数据类型包括VARCHAR2( 变长字符串)、NUMBER( 二进制数)、INTGER( 有符号整数)、FLOAT( 浮点数)、STRING( 以NULL 结尾的字符串)、VARNUM( 变长二进制数)、LONG( 变长字符串)、VARCHAR( 变长字符串)、ROWID( 二进制值)、DATE( 定长日期/ 时间值)、VARRAW( 变长二进制数据)、RAW( 定长二进制数据) 、LONGRAW( 变长二进制数据)、UNSIGNED( 无符号整数)、LONGVARCHAR( 变长字符串)、LONGVARRAW( 变长二进制数据)、CHAR( 定长字符串)、CHARZ(C 中定长以NULL 结尾的字符串)、MLSLABEL( 变长二进制数据)。
在PRO*C 中不能使用'l' 或'u' 作词尾或Ɔx' 作词头修饰常量;在SQL 语句中使用单引号来定义字符串,用双引号来定义特殊的或小写字符的标识符( 如表名等);SQL 语句中不允许使用C 中的寻址、间接、位逻辑、复合赋值、?=、-、++、%、<<、>> 操作符并且用NOT、AND、OR、= 代替!、&&、||、==。
下面的程序是一个联结数据库的PRO*C 源程序例子。
#include < sqlca.h > //声明SQL通讯区
#include < string.h >
#include < afxwin.h >
EXEC SQL BEGIN DECLARE SECTION;
VARCHAR username[20]; //声明宿主变量
VARCHAR password[20];
VARCHAR dbname[20];
EXEC SQL END DECLARE SECTION;
void db_connect()
{
strcpy((char *)username.arr,"SCOTT");
username.len = strlen((char *)username.arr);
strcpy((char *)password.arr,"TIGER");
password.len = strlen((char *)password.arr);
strcpy((char *)dbname.arr,"SUNDB");
dbname.len = strlen((char *)dbname.arr);
EXEC SQL WHENEVER SQLERROR STOP; //隐式异常处理
EXEC SQL CONNECT :username
IDENTIFIED BY :password USING :dbname;
/*if (sqlca.sqlcode != 0) //显式异常处理
{
AfxMessageBox("\n与Oracle数据库连接失败!");
return;
}*/
}
在VC 中使用PRO*C 时,先用PRO*C 编写所需的操作数据库的子程序,再运行PRO*C 预编译程序把PRO*C 源程序转成相应的CPP 源程序,将该程序插入到用户工程文件中并在需要对插入函数进行调用的模块中说明函数,然后就可以在此模块中调用所需的函数。