请教oracle高手 在oracle里怎么样用一个插入语句插入两表里的数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请教oracle高手 在oracle里怎么样用一个插入语句插入两表里的数据相关的知识,希望对你有一定的参考价值。

表A和B 列 A name address
B sex age
请加QQ 407869150指教 谢谢

如果是在程序里运行的话,很有可能是程序没有走插入语句的 sql 所有没有插入。

首先插入表的时候,需要确认表字段,主键及非空情况。主键和非空字段都必须要录入的。

其次需要看每个字段的类型和插入字段的类型是否相符,如果日期型字段硬要插入字符串型是插入不进去的。

再者注意看表字段的长度,我定义字段20个字符串的话,你插入长字符串也插入不进去的。

最后还得看你用什么程序:

如果C语言的话
insert(node *head, int i, int x)
中的head的内容,是无法完成目的的。
因为C在传递参数时采用的是传值调用。
因此必须修改函数原型为
insert(node **head,int i,int x)

如果其它语言的话一般都指定 insert(字段1,字段2,)values('x','y');
参考技术A 使用触发器就行了
oracle触发器(当插入或删除或修改一张表A时,能把新数据同步到另一张结构相同的表B里面)
create or replace trigger testT
AFTER INSERT OR UPDATE OR DELETE ON A
for each row
declare
-- local variables here
begin
IF INSERTING THEN
INSERT INTO b(a,b) VALUES(:NEW.a,:NEW.b);
ELSIF DELETING THEN
DELETE FROM b WHERE a=:OLD.a;
ELSE
UPDATE b SET b=:NEW.b WHERE a=:OLD.a;
END IF;
end testT;

SQL> desc a
Name Type Nullable Default Comments
---- ------------ -------- ------- --------
A VARCHAR2(20) Y
B VARCHAR2(20) Y

SQL> desc b;
Name Type Nullable Default Comments
---- ------------ -------- ------- --------
A VARCHAR2(20) Y
B VARCHAR2(20) Y

SQL> insert into a values('a','b');

1 row inserted

SQL> commit;

Commit complete

SQL> select * from b;

A B
-------------------- --------------------
a b

SQL> update a set b='c' where a='a';

1 row updated

SQL> commit;

Commit complete

SQL> select * from b;

A B
-------------------- --------------------
a c

SQL> delete from a where a='a';

1 row deleted

SQL> commit;

Commit complete

SQL> select * from b;

A B
-------------------- --------------------

SQL>
参考技术B 别乱交啊。各位。触发器是数据库中最失败的产品之一。有很多问题,千万别用
第一:触发器的异常 ,不会抛出给程序,出了问题,都不知道在哪里,造成很大数据不同步,无法使整体 回滚(如果程式还有其他操作的话)
第二:触发器 失效,也无法及时发现,比如修改了相关表的字段,都会引起失效
总之,使用触发器等于给自己埋了一个雷.DBA是最严谨的工作,没有把握的东西,千万别乱交。
解决方案:
使用存储过程,其实还是写两条sql的好,便于发现问题。
参考技术C 使用 过程或者触发器实现吧。。
mysql有这个功能
参考技术D 难为数据库系统了,没有这样的语句哦

Win7 家庭高级版安装 Oracle 11g 怎么弄?请教高手解决!!谢谢!紧急。。。

我是做java的现在需要安装Oracle 11g 没发安。一安就报错。请高手帮帮忙啊!

家庭版不能安装,你需要先升级到旗舰版才可以安装,在win7系统下安装Oracle ,有以下几点需要注意:
1.需用administrator 用户下安装。
2.因为oracle 10g暂时没有与win7兼容的版本,我们可以通过对安装软件中某些文件的修改达到安装的目地。
a)打开“\Oracle 10G \stage\prereq\db”路径,找到refhost.xml文件,打开,向其中添加如下代码并保存。
<OPERATING_SYSTEM>
<VERSION VALUE="6.1"/>
</OPERATING_SYSTEM>
b)打开“\Oracle 10G \install”路径,找到oraparam.ini文件,打开,向其中添加如下代码并保存。
[Windows-6.1-required]
#Minimum display colours for OUI to run
MIN_DISPLAY_COLORS=256
#Minimum CPU speed required for OUI
#CPU=300
[Windows-6.1-optional]
3.找到oracle安装文件中的setup应用程序,右击,打开“兼容性疑难解答”,点击“尝试建议的设置”,选择“启动程序”。
4.继续上一步的安装,安装oracle 10g,直到安装程序结束。
5.根据以上几步的安装,oracle很可能无法正常使用,最起码在我安装结束后,我的sqlplus无法正常使用,这种情况就涉及到权限的问题。具体可通过以下措施解决:
a)打开你已经安装好的oracle程序的路径“\oracle\product\10.2.0\db_1\BIN”,点击sqlplus.exe应用程序,右击—属性,选择兼容性,点击“以兼容模式运行这个程序”单选框,选择“window xp(service pack3)”,继续点击“以管理员身份运行此程序”单选框,最后点击应用-确定。
b)如此sqlplus就可以正常使用了。
6.对于一些需要远程访问数据库的用户,如此配置还会遇到Net Configuration Assistant无法启动的情况,这就需要找到“\oracle\product\10.2.0\db_1\BIN”路径下的launch.exe应用程序,具体配置如上5。
7.综合以上的配置,oracle 10g数据库就可以正常使用了。
8.对于数据库开发人员来说,有时候需要借助数据库工具对数据库进行操作,比如利用plsql developer工具操作数据库。如果利用以上oracle的安装配置,可能无法正常使用plsql developer,这涉及权限的问题,可以给“plsqldev.exe”应用程序设定兼容性和权限。具体操作,如上5追问

谢谢哈。。但是我问的是 Oracle 11g 。。。希望能从新给点意见。。谢谢!

追答

没安装过11g,听说 11g和win7已经兼容了,不知道你出现了什么样的问题。

参考技术A 最好的解决方案就是装个虚拟机,在虚拟机上装个可以装oracle 11g的linux操作系统,例如red hat. 参考技术B 把错误直接勾选为人工验证成功

以上是关于请教oracle高手 在oracle里怎么样用一个插入语句插入两表里的数据的主要内容,如果未能解决你的问题,请参考以下文章

win7在安装oracle 10g和oracle 11g时都会出现如下错误,请教高手们指导。

请教各位高手 oracle 存储过程 如何获得 捕获异常的内容

oracle数据库字段内容如何批量替换?

ORACLE EBS(ERP)销售订单和外部接口怎么实现,外单位数据过来后自动生成销售订单,请教高手?

oracle数据库中的instr的具体用法,在网上搜了很多,最终还是不明白,请教高手解释。

oracle数据库如何按多个条件查询数据。