初学oracle,有个挺简单的存储过程(书上的例子),麻烦朋友们帮忙给说道说道,谢谢!!!

morris_lz 2007-05-30 10:07:20
DECLARE
v_deptno dept.deptno%TYPE
v_dname dept.dname%TYPE
BEGIN
v_deptno := &no;
v_dname := '&name';
INSERT INTO dept (deptno, dname)
VALUE (v_deptno, v_dname);
END;

请问:
1.v_dname dept.dname%TYPE 中的%TYPE是什么意思?
2.v_dname := '&name'; 中为什么&name要用''给括起来?

谢谢大家,请帮我解答一下,thanks!

...全文
321 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
morris_lz 2007-05-30
  • 打赏
  • 举报
回复
hdyd() :谢谢兄弟


这就是完整的例子,书上只是为了说明用insert语句举了这么个简短的小例子


请你帮忙看看我的理解对不对啊,如果加''的话就是字符串类型,不加就是数字类型,是这样的吗
hdyd 2007-05-30
  • 打赏
  • 举报
回复
2,根据你的上下文看,应该是不需要引号的。

你贴出完整的程序给大家看看。
hdyd 2007-05-30
  • 打赏
  • 举报
回复
1,表示这个类型就按照表中这个字段的类型定义
morris_lz 2007-05-30
  • 打赏
  • 举报
回复
初学,请帮忙,感谢!
morris_lz 2007-05-30
  • 打赏
  • 举报
回复
谢谢大家!
DragonBill 2007-05-30
  • 打赏
  • 举报
回复
morris_lz(岁数大了,哎~~~~~) ( ) 信誉:100 Blog 加为好友 2007-05-30 15:20:19 得分: 0


DragonBill(用户中文昵称------静观其变,以静制动):说得很细致,谢谢你!

这个问题还不是很清楚

v_deptno := &no;
v_dname := '&name';

输入的时候&xx与'&xx'有什么区别呢?
用''与不用''有什么不一样的地方呢?


用'',将&name的值当作字符串
不用'',将&name当作一个object

你可以在SQL*PLUS中用
SELECT &name FROM DUAL;

SELECT '&name' FROM DUAL;
两个语句体会一下
hdyd 2007-05-30
  • 打赏
  • 举报
回复
说错了,

应该是用了'' 后,执行的时候,你name例如就输入 张三 就可以了。

否则你要输入 '张三'
hdyd 2007-05-30
  • 打赏
  • 举报
回复
_deptno := &no;
v_dname := '&name';

输入的时候&xx与'&xx'有什么区别呢?
用''与不用''有什么不一样的地方呢?

&no是临时变量,在执行的时候,需要用户输入具体值的。
用''就是写死了。数据库中存储的就是'&name'



morris_lz 2007-05-30
  • 打赏
  • 举报
回复
DragonBill(用户中文昵称------静观其变,以静制动):说得很细致,谢谢你!

这个问题还不是很清楚

v_deptno := &no;
v_dname := '&name';

输入的时候&xx与'&xx'有什么区别呢?
用''与不用''有什么不一样的地方呢?
HelloWorld_001 2007-05-30
  • 打赏
  • 举报
回复
VALUE (v_deptno, v_dname);


我怎么记得是values(v_deptno, v_dname)
难道我错了?
DragonBill 2007-05-30
  • 打赏
  • 举报
回复
%TYPE 表示和%前面的对象的类型一样 v_deptno dept.deptno%TYPE 就意味着v_deptno和dept表中deptno定义的类型一样

&表示从屏幕接收值, 相当于c中的scanf

17,382

社区成员

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

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