你好,是sql语句,不是存储过程,Insert into T_company_Apply (applyId, phase, ApplyPath, CurRole, ApplyGameAccount, Status,
records, Title, ApplyName, ApplyText, CreateDate, ApproveDate, AMOUNT,
CreateUserId, UpdateUserId, UpdateDate, CreateUserAccount ,ApplyNameEn)
VALUES (t_company_apply_seq.nextval,:Phase, :ApplyPath, :CurRole, :ApplyGameAccount, :Status,
:records, :Title, :ApplyName, :ApplyText, :CreateDate,
:ApproveDate, :AMOUNT ,:CreateUserId,:UpdateUserId,:UpdateDate,:CreateUserAccount,:ApplyNameEn);
:returnvalue = t_company_apply_seq.currval
这样写不行,调用的时候我想用一个output参数直接得到returnvalue的值,不用另外写存储过程了,这个怎么做啊?
records, Title, ApplyName, ApplyText, CreateDate, ApproveDate, AMOUNT,
CreateUserId, UpdateUserId, UpdateDate, CreateUserAccount ,ApplyNameEn)
VALUES (t_company_apply_seq.nextval,:Phase, :ApplyPath, :CurRole, :ApplyGameAccount, :Status,
:records, :Title, :ApplyName, :ApplyText, :CreateDate,
:ApproveDate, :AMOUNT ,:CreateUserId,:UpdateUserId,:UpdateDate,:CreateUserAccount,:ApplyNameEn);
:returnvalue = t_company_apply_seq.currval
这样写不行,调用的时候我想用一个output参数直接得到returnvalue的值,不用另外写存储过程了,这个怎么做啊?
解决方案 »
- 关于oracle discoverer
- ORA-01940: cannot drop a user that is currently connected 错误
- bfile类型的使用问题
- 能否推荐几个适合oracle入门的网站
- 分页过程---要求:输入表名,每页记录数,当前页码,返回总记录数,总页数与结果集****球高手帮忙解决哈问题
- 数据库导入问题
- 对比A,B两张表,将B表中与A表ID相同的记录写到C表,c表结构与B表相同,请问如何写?
- 存储过程运行后意外中断。应当从哪里入手寻找问题啊?
- 关于视图的问题
- linux7.2下orcale数据库开发问题?
- 为什么oracle中没有labs文件夹
- 帮忙解释一条SQL语句
import java.sql.DatabaseMetaData;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;import test.oracle.conn.OConnection;public class TestGetSeqInsert { public static void main(String[] args) {
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
con = OConnection.getConn();
DatabaseMetaData dmd = con.getMetaData(); System.out.println("database product name: "
+ dmd.getDatabaseProductName());
System.out.println("database product version: "
+ dmd.getDatabaseProductVersion());
System.out.println("supports generate keys? "
+ dmd.supportsGetGeneratedKeys()); String sql = "INSERT INTO test11 " + "VALUES (t_seq.nextval, ?)"; ps = con.prepareStatement(sql, new String[] { "ID" }); // 后面一个参数表示需要返回的列名 ps.setTimestamp(1, new Timestamp(System.currentTimeMillis()));
ps.executeUpdate(); if (dmd.supportsGetGeneratedKeys()) {
rs = ps.getGeneratedKeys();
while (rs.next()) {
// 如果使用 rs.getInt("ID") 会报错,奇怪的 Oracle JDBC 驱动!
System.out.println("ID: " + rs.getInt(1));
}
} } catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
if (ps != null) {
ps.close();
}
if (con != null) {
con.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
---------- -------------------- -----
1 xiaoming S
2 xiaohua S
3 xiaosheng PSQL> set serveroutput on
SQL>
SQL> declare
2 id number;
3 begin
4 insert into test_2 values(4,'xiaohuang','S')
5 returning id into id;
6 commit;
7 dbms_output.put_line(id);
8 end;
9 /4PL/SQL procedure successfully completed我只能从数据库角度告诉你怎么返回一个插入的值,.net代码只能等待高人
//关键是后面直接加入
sql+=" SELECT @@IDENTITY as returnID";
sqlcommand cmd=new sqlcommand(sql,connection);
//这就是返回主键值
int returnID=Convert.ToInt32(cmd.ExecuteScalar()) ;
Java里用hibernate或其他框架,插入一个对象后,对象里的主键自动就获得了。
要是db2里,就用这样的SQL语句去插数据:SELECT ID, NAME FROM FINAL TABLE (INSERT INTO CKM_DOWNLOADEDLIST (NAME)VALUES (?));