Làm cách nào để nhận được số thứ tự của hàng được chèn vào?Oracle: Làm cách nào để nhận được số thứ tự của hàng được chèn vào?
Trả lời
chèn ... trả lại.
declare
s2 number;
begin
insert into seqtest2(x) values ('aaa') returning seq into s2;
dbms_output.put_line(s2);
end;
"seq" ở đây đề cập đến tên cột có giá trị bạn muốn lưu vào biến s2.
trong python:
myseq=curs.var(cx_Oracle.NUMBER)
curs.prepare("insert into seqtest2(x) values('bbb') returning seq into :x")
curs.execute(None, x=myseq)
print int(myseq.getvalue())
Edit: như Mark Harrison chỉ ra, điều này giả định rằng bạn có thể kiểm soát như thế nào id của bản ghi chèn của bạn được tạo ra. Nếu bạn có quyền kiểm soát và chịu trách nhiệm về nó, điều này nên công việc ...
Sử dụng một thủ tục lưu trữ để thực hiện chèn của bạn và trả lại id.
ví dụ: cho một bảng tên với id:
PROCEDURE insert_name(new_name IN names.name%TYPE,
new_name_id OUT names.id%TYPE)
IS
new_id names.id%TYPE;
BEGIN
SELECT names_sequence.nextVal INTO new_id FROM dual;
INSERT INTO names(id, name) VALUES(new_id, new_name);
new_name_id := new_id;
END;
Sử dụng thủ tục lưu trữ cho các hoạt động CRUD là một ý tưởng tốt không phân biệt nếu bạn không sử dụng một lớp ORM, vì nó làm cho mã của bạn database- hơn bất khả tri, giúp chống lại các cuộc tấn công tiêm và như vậy.
Câu trả lời của tôi trong C#, xem xét bảng "testtable" có một "ID" collumn như PK với một chuỗi tự động và trường "testname" là một trường varchar.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Oracle.DataAccess.Client;
using System.Data;
namespace ConsoleApplication3
{
class Program
{
public static void Main(string[] args)
{
OracleConnection cn = new OracleConnection("your connection string here");
string sql = "INSERT INTO testtable(testname) VALUES('testing2') RETURNING id INTO :LASTID";
OracleParameter lastId = new OracleParameter(":LASTID", OracleDbType.Int32);
lastId.Direction = ParameterDirection.Output;
using (OracleCommand cmd = new OracleCommand(sql, cn))
{
cn.Open();
cmd.Parameters.Add(lastId);
cmd.ExecuteNonQuery();
Console.WriteLine("Last ID: " + lastId.Value.ToString());
cn.Close();
}
Console.WriteLine();
Console.ReadKey(false);
}
}
}
- 1. Làm cách nào để nhận ID của nhiều hàng được chèn vào trong MySQL?
- 2. Chèn nhiều hàng vào Oracle
- 3. Làm cách nào để chèn nhiều hàng vào oracle với giá trị chuỗi?
- 4. Làm cách nào để hợp nhất và duy trì thứ tự hàng của một đầu vào?
- 5. làm thế nào để chèn ngày và giờ vào oracle?
- 6. Làm cách nào để nhận số hàng trong JDBC?
- 7. Oracle - Chèn hàng mới có ID gia tăng tự động
- 8. Cách nhanh nhất để chèn hàng triệu hàng trong Oracle
- 9. Nhận ID bản ghi được chèn lần cuối vào oracle db
- 10. Cách chèn ký tự vào số NSString
- 11. Làm cách nào để chèn 100000 hàng vào MSSQL?
- 12. Làm cách nào để nhận được thứ tự định nghĩa thuộc tính lớp trong Python?
- 13. Làm thế nào để có được các khóa được tạo từ chèn hàng loạt JDBC trong Oracle?
- 14. Trả lại các hàng theo thứ tự chính xác mà chúng đã được chèn
- 15. Làm cách nào để làm cho ứng dụng Java của tôi tự nhận dạng được với Oracle khi kết nối?
- 16. Làm thế nào để có được giá trị của autoincrement của hàng cuối cùng tại chèn
- 17. Làm cách nào để tự động có ngày xây dựng được chèn vào lúc thiết kế
- 18. Làm cách nào để giữ lại thứ tự chèn của một hàm băm Perl lồng nhau?
- 19. Thứ tự MySQL được đánh giá theo thứ tự nào?
- 20. Cách tốt nhất để có được danh tính của hàng được chèn vào trong Máy chủ được liên kết?
- 21. chèn số lượng lớn từ Java vào Oracle
- 22. Làm thế nào để duy trì thứ tự các mục được thêm vào bộ khớp jQuery?
- 23. Truy cập DataGridXem hàng thứ tự đã được thêm
- 24. Làm cách nào để nhận được ID của chế độ xem con được nhấp vào được thêm động vào LinearLayout?
- 25. Có cách nào để có được số hàng trong Mysql giống như sự kiện trong oracle
- 26. Làm cách nào để có được thứ tự Ban đầu của NSDictionary/NSMutableDictionary?
- 27. Làm thế nào để có được id của hàng chèn từ PG :: Kết quả
- 28. Truy vấn Oracle để lấy Dữ liệu từ bảng được chèn vào trong 10 phút trước
- 29. Làm thế nào tôi có thể nhận được emacs để chèn niềng răng tự động
- 30. Cách chỉ định dấu phân cách hàng nghìn và thập phân được sử dụng bởi Số thứ tự của GWT