问个关于建表和访问表的问题?

吃素的 2005-04-01 03:07:22
我是个ORACLE9I的初学者;不明白为什么我建的表不能访问,而系统自带的(如EMP)却可以访问??访问我是通过用PRO*C|C++编写的一个小程序内嵌CONNECT语句访问的;但是当我访问我通过EMC创建的表,提示我数据不存在,我用SQL脚本建的表也不能访问,也提示数据不存在;请各位高手帮忙解决下?请讲解一下在Oracle9i中建表的相关事项?最好附带上用PRO*C|C++编写创建表、访问表的原码!!
...全文
149 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
吃素的 2005-04-01
  • 打赏
  • 举报
回复
EXEC SQL BEGIN DECLARE SECTION;
char username[10],password[50],server[10];
double sid,bid;
EXEC SQL END DECLARE SECTION;
void connect()
{
printf("INPUT NAME :");
gets(username);
printf("INPUT PWD :");
gets(password);
printf("INPUT PWD :");
gets(server);
EXEC SQL CONNECT :username IDENTIFIED BY :password USING :server;
}
void sql()
{
printf("请输入sid: ");
scanf("%d",&sid);
EXEC SQL SELECT b_id INTO :bid FROM bok
WHERE s_id=:sid;
if(sqlca.sqlcode==0)
printf("%d\n",bid);
else
printf("%.*s\n",sqlca.sqlerrm.sqlerrml,sqlca.sqlerrm.sqlerrmc);
}
void sql_error()
{
printf("%.*s\n",sqlca.sqlerrm.sqlerrml,sqlca.sqlerrm.sqlerrmc);
}
void main()
{
EXEC SQL WHENEVER SQLERROR DO sql_error();
connect();
if(sqlca.sqlcode==0)
printf("已连接数据库!\n");
else
printf("err%.*s\n",sqlca.sqlerrm.sqlerrml,sqlca.sqlerrm.sqlerrmc);
sql();
EXEC SQL COMMIT RELEASE;
}
吃素的 2005-04-01
  • 打赏
  • 举报
回复
sid和bid都是double型
吃素的 2005-04-01
  • 打赏
  • 举报
回复
create table bok(
s_id number(10),
b_id number(10));在SCOTT用户下创建的表;在SQL PLUS下访问、查找都可以;
但是在PRO*C|C++下编写
void sql()
{
printf("请输入S_ID: ");
scanf("%d",&sid);
EXEC SQL SELECT b_id INTO :bid FROM bok
WHERE s_id=:sid;
if(sqlca.sqlcode==0)
printf("%d\n",bid);
else
printf("%.*s\n",sqlca.sqlerrm.sqlerrml,sqlca.sqlerrm.sqlerrmc);
}
这个编译运行后就不能访问了??
这个也是以SCOTT登陆的??
beckhambobo 2005-04-01
  • 打赏
  • 举报
回复
不管什么原因,决定因素是所登陆用户是否对其表存在访问权限.
用不用脚本创建与此问题无关。
或你可把脚本贴出来,大家共同探讨
zhaokeke2004 2005-04-01
  • 打赏
  • 举报
回复
你用scott登录SQL PLUS能访问bok表吗?
老高高高 2005-04-01
  • 打赏
  • 举报
回复
一般情况下,我都在OMF下建一个用户,给用户以一定的权限,在用户下建表,以用户身份访问表。
llm06 2005-04-01
  • 打赏
  • 举报
回复
to public
吃素的 2005-04-01
  • 打赏
  • 举报
回复
还有那个表在 oracle 9i内执行SQL脚本 却可以访问
吃素的 2005-04-01
  • 打赏
  • 举报
回复
如果想设定 所有人都可以访问这个表 那 “other_username”得是什么参数
吃素的 2005-04-01
  • 打赏
  • 举报
回复
create table bok(
s_id number(10),
b_id number(10)
);
grant select on bok to scott;
这样执行后;在PRO*C写的程序以scott密码tiger登陆 还是无法访问BOK表??
zhaokeke2004 2005-04-01
  • 打赏
  • 举报
回复
grant select on table_name to other_username
吃素的 2005-04-01
  • 打赏
  • 举报
回复
没啊。请问怎么授权呢?
zhaokeke2004 2005-04-01
  • 打赏
  • 举报
回复
你创建的表授权访问了吗?

17,382

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧