问个关于建表和访问表的问题? grant select on table_name to other_username 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 create table bok(s_id number(10),b_id number(10));grant select on bok to scott;这样执行后;在PRO*C写的程序以scott密码tiger登陆 还是无法访问BOK表?? 如果想设定 所有人都可以访问这个表 那 “other_username”得是什么参数 还有那个表在 oracle 9i内执行SQL脚本 却可以访问 一般情况下,我都在OMF下建一个用户,给用户以一定的权限,在用户下建表,以用户身份访问表。 你用scott登录SQL PLUS能访问bok表吗? 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登陆的?? 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;} 函数里面的SQL语句,怎样使用传入的参数作为条件表达式? 有例子不抽象,请进 要查 所有用户表中包含 “XX”这个内容的所有记录,sql 如何写? SQL语句查询优化问题 关于rowcount的问题? 一个小问题 求高人帮忙,我自己写的一个过程,它总是提示编译错误 在SQLPlus Worksheet中调试过程,错误! 这个sql语句怎么写,大家指点一下。很急! 有谁安装过Oracle9i? 请问如何查询表中的第N条记录? 怎么启动oracle,启动oracle的顺序是什么? 求助:为什么我的这个触发器中的:old,:new不起作用?
s_id number(10),
b_id number(10)
);
grant select on bok to scott;
这样执行后;在PRO*C写的程序以scott密码tiger登陆 还是无法访问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登陆的??
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;
}