Java 如何从Oracle sql中的表1更新表2中的ID

Java 如何从Oracle sql中的表1更新表2中的ID,java,sql,database,oracle,stored-procedures,Java,Sql,Database,Oracle,Stored Procedures,我有两个表,第一个表有列ID、email、password。第二个表包含id、薪资、公司、部门 表1列Id是自动生成的编号 我有一个Java表单,它收集除id之外的所有这些值,并使用过程保存到db 现在,每当我向Java表单添加细节时,我如何将其与Java表单中的其他值一起传递到表2 我尝试插入到表2中(id)从表1中选择id 和插入表2(工资,公司)中的值(x,y) 如何使用SQL中的过程组合这两条语句?您可以通过两种方式进行组合: 1) 找出生成代码中id的函数或过程, 然后获取该id并插入

我有两个表,第一个表有列
ID、email、password
。第二个表包含id、薪资、公司、部门

表1列Id是自动生成的编号

我有一个Java表单,它收集除id之外的所有这些值,并使用过程保存到db

现在,每当我向Java表单添加细节时,我如何将其与Java表单中的其他值一起传递到表2

我尝试
插入到表2中(id)从表1中选择id
插入表2(工资,公司)中的值(x,y)


如何使用SQL中的过程组合这两条语句?

您可以通过两种方式进行组合:

1) 找出生成代码中id的函数或过程, 然后获取该id并插入表2中

2) 必须获取最后插入的行的行id,每个表的行id都是唯一的:

SELECT MAX (ROWID) FROM table1
使用rowid获取最后一个id:

SELECT id FROM table1 WHERE ROWID IN (SELECT MAX (ROWID) FROM table1)

现在使用其id并插入到表2中,在将另一个新行插入到表1中之前必须执行此操作

create or replace procedure proc (em in varchar2,pass in varchar2,sal in number,cmp in varchar2,d in number)
as
sid number;
begin
insert into table1(id,email,password) values(<autogenerated_number>,em,pass) returning id into sid;
insert into table2(id,salary,company,dept) values(sid,sal,cmp,d);
commit;
end;
创建或替换过程过程过程(em在varchar2中,传递在varchar2中,sal在编号中,cmp在varchar2中,d在编号中)
作为
sid号;
开始
将返回id到sid的值(、em、pass)插入表1(id、电子邮件、密码);
在表2中插入(id、工资、公司、部门)值(sid、sal、cmp、d);
犯罪
结束;

能否请您将问题的格式设置得更好,并使问题更加明显?还有,你尝试了哪些步骤,你的代码示例是什么?是的,现在清楚了吗?我编辑它是因为它一点也不清楚。对代码示例使用正确的格式,并使您的问题更加明显。可疑的双重张贴-这看起来像考试作弊之类的