c查询oracle数据库
⑴ c语言操作Oracle数据库,sql语句是从数据库查出来组合成的,以前的sql语句是2600多个字符
你可以把语句用函数或存储过程写到数据库上,然后从程序里面调用函数或存储过程。输入程序上的提供的参数,返回程序需要的参数就行了。
这是oracle的长处,中间你可以用游标,然后用动态语句:execute immdiate ‘你的语句’。这应该是一个很简单的过程或函数。可以做出比你现在功能更强的程序。
希望你早点解决。
⑵ 如何查询oracle数据库的操作记录
首先,向你介绍一个动态视图:v$sql
该视图展示最近一段时间所有执行过的sql语句:
select * from v$sql
即可。
如果报错找不到v$sql,一般是权限问题,换sysdba就肯定能查到。
但要注意的是“隐式sql”,很多sql语句是调用执行的,(比如,存储过程中对dbms包的调用,再如执行create 语句所触发的对系统表空间、数据字典的修改等等。),这些语句同样会展现在v$sql中。
还有其它与sql历史记录相关的v$视图,详情可以参考Oracle官方文档《Oracle® Reference》,直接给你个10.2的文档链接,够方便了吧:
http://www.oracle.com/pls/db102/homepage?remark=tahiti
⑶ Oracle数据库中怎么查询
withtmp(c_id,c_name,c_up)as
(
select1,'四川省',0fromalunionall
select2,'河北省',0fromalunionall
select3,'河南省',0fromalunionall
select4,'成都市',1fromalunionall
select5,'绵阳市',1fromalunionall
select6,'南充市',1fromalunionall
select7,'双流县',4fromalunionall
select8,'高新区',4fromal)
select*fromtmp
wherec_up=0
startwithc_name='成都市'
connectbypriorc_up=c_id
⑷ 如何查询Oracle数据库的操作日志
方法1:使用LogMiner工具
优点:可以完全挖掘日志内容,找出所有执行过的SQL语句
缺点:
1. 如果没有启用归档日志,则只能对联机日志进行挖掘
2. 需要掌握LogMiner的用法
访法2:查看HIST视图
优点:简单,只要使用普通的select语句查询
缺点:Oracle保留约1周的历史,所以要查太早的就不可能了
-- 找出哪个数据库用户用什么程序在最近三天执行过delete或truncate table的操作
举例如下:
SELECT c.username,
a.program,
b.sql_text,
b.command_type,
a.sample_time
FROM dba_hist_active_sess_history a
JOIN dba_hist_sqltext b
ON a.sql_id = b.sql_id
JOIN dba_users c
ON a.user_id = c.user_id
WHERE a.sample_time BETWEEN SYSDATE - 3 AND SYSDATE
AND b.command_type IN (7, 85)
ORDER BY a.sample_time DESC;
⑸ 如何查询oracle下的所有数据库
查看那些库的话必须用dba权限登录。登陆后可以通过下面的方法来查看。
一、查看有哪些库,你的库理解不准确,应该准确来说是表空间,可以通过下面的命令来实现
SELECT
Total.name
"Tablespace
Name",
Free_space,
(total_space-Free_space)
Used_space,
total_space
FROM
(select
tablespace_name,
sum(bytes/1024/1024)
Free_Space
from
sys.dba_free_space
group
by
tablespace_name
)
Free,
(select
b.name,
sum(bytes/1024/1024)
TOTAL_SPACE
from
sys.v_$datafile
a,
sys.v_$tablespace
B
where
a.ts#
=
b.ts#
group
by
b.name
)
Total
WHERE
Free.Tablespace_name
=
Total.name
二、查看有哪些表。
select
table_name
from
dba_tables
where
owner='A';
⑹ c语言访问oracle数据库有几种方式,哪种最好
SQL SERVER连接oracle数据库几种方法--1 方式 --查询oracle数据库中的表 SELECT * FROM OPENDATASOURCE( 'MSDAORA', 'Data Source=GE160;User ID=DAIMIN;Password=DAIMIN' )..
⑺ 查询oracle数据库连接配置文件是否正确
摘要 Oracle客户端tnsnames.ora连接配置
⑻ VS2008上用C、C++连接ORACLE数据库,并进行查询操作
用proc 编译*.pc 后形成c文件,而后将C文件加到工程
⑼ 如何查看oracle表空间数据文件位置
select file_name , tablespace_name from dba_data_files;
db.comit在线教育
⑽ c连接oracle数据库的连接语句
我只会在unix下面写,嘿嘿win的我还不会呢。。
把代码贴上。至于怎么
编译,再查查吧~
int
main()
{
EXEC
SQL
BEGIN
DECLARE
SECTION;
char
oc_passwd[101];
/*数据库密码*/
char
oc_userid[101];
/*数据库用户名*/
char
oc_dbname[101];
/*数据库名*/
char
oc_coad[101];
EXEC
SQL
END
DECLARE
SECTION;
memset(oc_passwd,
0x00,
sizeof(oc_passwd));
memset(oc_userid,
0x00,
sizeof(oc_userid));
memset(oc_dbname,
0x00,
sizeof(oc_dbname));
/*取数据库用户名*/
strcpy(oc_userid,
"userid");
/*取数据库用户密码*/
strcpy(oc_passwd,
"passwd")
;
/*取数据库名*/
strcpy(oc_dbname,
"dbname");
EXEC
SQL
CONNECT
:oc_userid
IDENTIFIED
BY
:oc_passwd
USING
:oc_dbname;
if
(sqlca.sqlcode
!=
0)
{
printf("用户名[%s]密码[%s]数据库[%s]\n",
oc_userid,
oc_passwd,
oc_dbname);
printf("连接数据库失败,sqlcode=%d\n",
sqlca.sqlcode);
return
-1;
}
/*读table取coad字段*/
memset(oc_coad,
0x00,
sizeof(oc_coad));
EXEC
SQL
SELECT
coad
INTO
:oc_coad
FROM
table
WHERE
1=1;
if
(sqlca.sqlcode
==
NORECORD)
{
printf("查询无记录\n");
return
-1;
}
else
if
(sqlca.sqlcode
!=
0)
{
printf("查询失败,sqlcode=%d\n",
sqlca.sqlcode);
return
-1;
}
return
0;
}