- 浏览: 5029204 次
- 性别:
- 来自: 南京
文章分类
- 全部博客 (2844)
- java (1094)
- hadoop (37)
- jvm (39)
- hbase (11)
- sql (25)
- 异常 (83)
- div css (6)
- 数据库 (95)
- 有趣的code (15)
- struts2 (6)
- spring (124)
- js (44)
- 算法 (65)
- linux (36)
- hibernate (7)
- 中间件 (78)
- 设计模式 (2)
- 架构 (275)
- 操作系统 (91)
- maven (35)
- tapestry (1)
- mybatis (9)
- MQ (101)
- zookeeper (18)
- 搜索引擎,爬虫 (208)
- 分布式计算 (45)
- c# (7)
- 抓包 (28)
- 开源框架 (45)
- 虚拟化 (12)
- mongodb (15)
- 计算机网络 (2)
- 缓存 (97)
- memcached (6)
- 分布式存储 (13)
- scala (5)
- 分词器 (24)
- spark (104)
- 工具 (23)
- netty (5)
- Mahout (6)
- neo4j (6)
- dubbo (36)
- canal (3)
- Hive (10)
- Vert.x (3)
- docker (115)
- 分布式追踪 (2)
- spring boot (5)
- 微服务 (56)
- 淘客 (5)
- mesos (67)
- php (3)
- etcd (2)
- jenkins (4)
- nginx (7)
- 区块链 (1)
- Kubernetes (92)
- 驾照 (1)
- 深度学习 (15)
- JGroups (1)
- 安全 (5)
- 测试 (16)
- 股票 (1)
- Android (2)
- 房产 (1)
- 运维 (6)
- 网关 (3)
最新评论
-
明兜3号:
部署落地+业务迁移 玩转k8s进阶与企业级实践技能(又名:Ku ...
Kubernetes系统常见运维技巧 -
q328965539:
牛掰啊 资料收集的很全面
HDFS小文件处理解决方案总结+facebook(HayStack) + 淘宝(TFS) -
guichou:
fluent挂载了/var/lib/kubelet/pods目 ...
kubernetes上部署Fluentd+Elasticsearch+kibana日志收集系统 -
xu982604405:
System.setProperty("java.r ...
jmx rmi 穿越防火墙问题及jmxmp的替代方案 -
大漠小帆:
麻烦问下,“获取每个Item相似性最高的前N个Item”,这个 ...
协同过滤推荐算法在MapReduce与Spark上实现对比
目 录
Pro*C&C++
Pro*c简单实例
Unix下Pro*c编译命令
什么是Pro*C&C++
Pro*c中使用plsql获取多条记录
Pro*C能支持什么
--------------------------------------------------------------------------------
Pro*C&C++
[目录]
--------------------------------------------------------------------------------
Pro*c简单实例
/*
* filename:model.pc
* author:alamo
* inc:sinosoft
* create
time:2001.3.24
* update time:
* desc:it is a model file for write pro*c
programe for oracle+tuxedo
*/
#include <stdio.h>
#include
<string.h>
#include <stdlib.h>
#include
<sqlda.h>
#include <sqlcpr.h>
#include
<atmi.h>
#include <fml.h>
#include <userlog.h>
/* set pro*c operation */
exec sql include sqlca;
exec sql include
oraca;
exec oracle option (oraca=yes);
/* Define constants for VARCHAR lengths. */
#define UNAME_LEN
20
#define PWD_LEN 40
/* Declare variables. No declare section is
needed if MODE=ORACLE.
*/
VARCHAR username[UNAME_LEN]; /* VARCHAR is an Oracle-supplied struct
*/
varchar password[PWD_LEN]; /* varchar can be in lower case also. */
/* Declare error handling function. */
void sql_error(msg)
char
*msg;
{
char err_msg[128];
size_t buf_len, msg_len;
EXEC SQL WHENEVER SQLERROR CONTINUE;
printf("\n%s\n", msg);
buf_len = sizeof (err_msg);
sqlglm(err_msg,
&buf_len, &msg_len);
printf("%.*s\n", msg_len, err_msg);
EXEC SQL ROLLBACK RELEASE;
exit(EXIT_FAILURE);
}
void main()
{
/* Connect to ORACLE--
* Copy the username into the
VARCHAR.
*/
strncpy((char *) username.arr, "sgac_dec", UNAME_LEN);
/* Set the length component of the VARCHAR. */
username.len =
(unsigned short) strlen((char *) username.arr);
/* Copy the password. */
strncpy((char *) password.arr, "dbwork",
PWD_LEN);
password.len =
(unsigned short) strlen((char *)
password.arr);
/* Register sql_error() as the error handler. */
EXEC SQL WHENEVER
SQLERROR DO sql_error("ORACLE error--\n");
/* Connect to ORACLE. Program will call sql_error()
* if an error occurs
when connecting to the default database.
*/
EXEC SQL CONNECT :username
IDENTIFIED BY :password;
printf("\nConnected to ORACLE as user: %s\n", username.arr);
/* Disconnect from ORACLE. */
EXEC SQL ROLLBACK WORK
RELEASE;
exit(EXIT_SUCCESS);
}
[目录]
--------------------------------------------------------------------------------
Unix下Pro*c编译命令
#编译pc文件为c文件
proc include= filename.pc
#编译c文件,生成目标文件
cc
-I$ORACLE_HOME/precomp/public -c filename.o filename.c
#连接目标文件,生成可执行程序.32位系统是在linb32下
cc
-L$ORACLE_HOME/lib -lclntsh -o filename
filename.o
example
#使用pl/sql块时必须设置sqlcheck
rm model_exe.c
proc
include=${TUXDIR}/include model_exe.pc SQLCHECK=FULL userid=scott/tiger
rm
model_exe.o
cc -I$ORACLE_HOME/precomp/public -I$TUXDIR/include -c model_exe.o
model_exe.c
rm model_exe
cc -L$ORACLE_HOME/lib -lclntsh -o model_exe
model_exe.o
[目录]
--------------------------------------------------------------------------------
什么是Pro*C&C++
Pro*C/C++预编译将嵌入在你的C和C++程序中的SQL语句转换成标准的C代码。预编译这些代码后,C和C++程序你可以编译和使用去构造应用和访问ORACLE数据库。
去访问ORACLE数据库,你使用高级查询语言即SQL语言。Pro*C/C++是预编译器转换C语句中的EXEC
SQL命令。
ORACLE公司针对ORACLE数据库开发的一种SQL嵌入式开发语言。
在C代码中嵌入SQL语言,C代码用宿主变量与SQL进行交换数据。
预编译后生成标准C代码。
[目录]
--------------------------------------------------------------------------------
Pro*c中使用plsql获取多条记录
valueStr VARCHAR; // 接收查询结果的字符串,注意长度不能小于返回的结果字符的长度
EXEC SQL
EXECUTE
DECLARE
resultStr VARCHAR2(行长度*可能的最大行数) := ''; //
行长度要>=各字段长度之和
BEGIN
FOR cur1 IN(sql语句) LOOP // SQL语句中列的写法为
c1||'||'||c2... rowStr
resultStr := resultStr||cur1.rowStr||'!!';
END
LOOP;
if(length(resultStr) > 0) then -- 如果为空,出现PROC异常
:valueStr :=
resultStr;
end if;
END;
END-EXEC;
例子:
var x varchar2(4000);
DECLARE
resultStr
varchar2(4000);
begin
for cur1 in(select deptno||dname||loc rowStr from
dept) loop
resultStr := resultStr||cur1.rowStr||'!!';
end loop;
:x :=
resultStr;
end;
/
[目录]
--------------------------------------------------------------------------------
Pro*C能支持什么
1.远程(通过NET8)或者本地访问ORACLE8服务器,版本8.0。
2.可嵌入PL/SQL块。
3.捆绑式数据库调用,在C/S环境下能够达到最好的性能。
4.完全参照ANSI标准的SQL程序。
5.PL/SQL过程中PL/SQL8.0版。
6.多层应用。
7.ANSI标准C。
8.支持Microsoft
Visual C++ 5.0版32位应用。
9.支持Borland C++ 5.0版32位应用。
发表评论
-
MyBatis 使用 MyCat 实现多租户的一种简单思路
2017-11-20 18:27 2836本文的多租户是基于多数据库进行实现的,数据是通过不同数据库进 ... -
Otter(一)初识----简介和基本架构图
2017-10-11 11:23 1273tter 初识----简介和基本架构图 ... -
Canal+Otter - 前日篇(1)
2017-10-11 11:21 1193数据库同步中间件Canal+Otter - 前日篇(1) ... -
Otter-入门篇1(阿里开源项目Otter介绍)
2017-10-11 11:16 944Otter-入门篇1(阿里开源项目Otter介绍) ... -
Mysql几种索引类型的区别及适用情况
2017-09-30 16:27 581如大家所知道的,Mysql目前主要有以下几种索引类型:FUL ... -
唯一索引与主键索引的比较
2017-09-29 10:21 1469唯一索引唯一索引不 ... -
主键索引和唯一索引的区别
2017-09-29 10:05 651-- 区别 主键是一种约束,唯一索引是一种索引,两者 ... -
Index column size too large. The maximum column size is 767 bytes
2017-09-28 18:01 1881Index column size too large. T ... -
数据库死锁分析与解决
2017-08-17 10:00 859一、死锁的表现 1、 ... -
mysql,oracle,sql server中的默认事务隔离级别查看,更改
2017-08-09 13:44 1372未提交读(隔离事务的最低级别,只能保证不读取物理上损坏的 ... -
Mycat跨分片Join
2017-08-02 11:26 8761 前言 Mycat目前版本支持跨分片的join,主要实现 ... -
Mycat 分布式事务的实现
2017-08-02 11:27 1368引言:Mycat已经成为了一个强大的开源分布式数据库 ... -
MyCat部署运行(Windows环境)与使用步骤详解
2017-08-02 10:20 8871、MyCat概念 1.1 总体架构 MyCAT的架 ... -
mycat 分片中快速数据迁移思考
2017-07-31 17:42 867操作实践背景: travelrecord表定义 ... -
Mycat水平拆分之十种分片规则
2017-07-31 16:43 872水平切分分片实现 配置schema.xml ... -
博客分类: DB-oracle sqlOracle 1、方式一:使用序列和触发器 Sql代码 收藏代码 SQL> CREATE SEQUENCE te
2017-07-22 09:01 506sqlOracle 1、方式一:使用 ... -
PL/SQL Developer连接本地Oracle 11g 64位数据库
2017-05-16 22:29 7071.登录PL/SQL Developer 这里省略Ora ... -
分库分表的几种常见形式以及可能遇到的难
2017-04-11 23:33 806在谈论数据库架构和数据库优化的时候,我们经常会听到“分库分表 ... -
MySQL 日志
2017-01-11 20:58 582概述 MySQL日志记录了MySQL服务器的各种行为,My ... -
undo log与redo log原理分析
2016-12-17 21:57 815数据库通常借助日志来 ...
相关推荐
unix 或linux操作系统下oracle pro*c程序编译程序
**Pro*C**是一种由Oracle提供的预编译工具,用于将C语言程序中的SQL语句预编译成能够直接与Oracle数据库交互的二进制代码。它主要用于在银行业务、电信营账等领域,这些领域通常需要高效的数据处理能力以及高度定制...
3. **执行编译命令:** - 运行`nmake`开始编译Qt源码。 - 此步骤可能需要较长时间才能完成。 4. **清理中间文件(可选):** - 使用`nmake clean`命令清理中间文件,可以节省磁盘空间。 - 注意,这一步是可选的...
- **PROC与Pro*C**:PROC是Tuxedo的C语言接口,允许开发者编写C程序来操作Tuxedo服务。Pro*C是Oracle提供的预编译器,用于将嵌入式SQL语句编译到C程序中,便于与数据库交互。 - **UNIX**:Tuxedo通常运行在UNIX...
4. **预处理器(Preprocessor)**:在Pro*C的情况下,`cpp`命令(或者`proc`命令,对于Pro*C)会用来预处理源文件,将SQL语句转化为C函数调用。 5. **编译器(Compiler)**:对于C/C++项目,`gcc`或`g++`是常用的...
在探讨如何将Qt的pro文件转换为Visual Studio(VS)的工程文件之前,我们首先需要了解几个关键概念:Qt的项目文件(pro文件)、Visual Studio的解决方案与项目文件以及qmake工具。 ### Qt的pro文件 Qt项目文件...
- **命令**:CSET, VSET, BSET, SPLSET, BLKSET - **选项1**:ALL, NONE, NEWSet, ADD, DELEte, SUBSet, INVE - **选项2**:List, Type, Zone, NumberRange, GeometricRange #### 编辑操作 - **Edit Types**:定义...
- 使用 `tmake` 命令根据 `.pro` 文件生成 `Makefile`: ``` tmake hello.pro -o Makefile ``` 3. **编译程序**: - 运行 `make` 命令来编译项目: ``` make ``` #### 五、Makefile 模板 `tmake` 提供了...
3. **使用qmake命令**:一旦创建了 .pro 文件,就可以通过运行 `qmake project.pro` 命令来生成 Makefile 文件。之后可以通过执行 `make` 或者 `mingw32-make`(对于 Windows 用户)来构建项目。 通过上述步骤,...
**在Ubuntu下预处理的命令** 在Ubuntu系统中,预处理命令通常由GCC编译器的一部分完成,可以通过如下命令进行预处理: ``` gcc -E hello.c -o hello.i ``` 这里`-E`选项告诉GCC仅进行预处理,不进行后续的编译...
综上所述,这个压缩包包含的资源很可能与Linux系统下的Intel PRO 1000网络驱动程序的开发有关,涉及到了C语言编程、系统调用、设备驱动开发等多个Linux/Unix编程的核心领域。通过研究这些源代码,开发者可以学习到...
- **Prostar**:在UNIX系统下启动PROSTAR的命令。 - **Prolinkl**:用于生成带有自定义参数设置的本地执行文件“prol-xm”。 - **Starlink**:用于编译STAR可执行文件。 - **Ufile**:存放所有子程序的目录。 #### ...
在本文中,我们将深入探讨如何使用CMake 3.22和QT 5.13编译OpenCV 4.4,特别是在32位环境下。首先,我们需要理解这些工具的作用和重要性。 CMake是一个跨平台的开源构建系统,它能够生成针对不同IDE和构建系统的...
Makefile是Unix/Linux系统下的一种自动化构建工具,它定义了一系列规则来编译、链接源代码文件,生成可执行程序。一个基本的Makefile包含目标、依赖项和命令。例如,`target: dependency`结构表示目标文件依赖于哪些...
为了进一步学习和理解这个项目,开发者需要熟悉C语言的基本语法,理解如何在Linux/Unix环境下编写和编译程序,还要掌握Allegro库的基本用法,包括如何初始化和关闭Allegro、如何绘制图形、响应用户输入等。...
总的来说,ixgb_osdep.rar包含的驱动程序源代码文件ixgb_osdep.c是为Linux系统设计的Intel PRO 10GbE网卡的驱动核心,它的理解和使用涉及到Linux/Unix驱动开发、网络设备原理、系统调用等多个方面的知识。...
针对PL/SQL本地编译、Pro*C/C+、Oracle Call Interface等的额外补丁如PHSS_33278、PHSS_33279也应确保安装。 #### 安装前准备 1. **下载并解压安装包**:首先需下载Oracle 10g R2的数据库安装包10gr2_database_...
2. **开发跨平台软件**:Cygwin提供了GCC编译器,可以编译和调试C、C++、Fortran等语言的代码,使得在Windows上开发Unix/Linux应用成为可能。 3. **自动化任务**:使用bash脚本和工具如awk、sed,可以编写复杂的文件...