PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Oracle DBMS_LOB.WRITEAPPEND thành Chuyển đổi Postgres

Nó phụ thuộc vào kích thước của vật thể lớn của bạn. Khi các đối tượng lớn của bạn nhỏ hơn khoảng 500MB, thì bạn không cần sử dụng LOB (PostgreSQL sử dụng thuật ngữ LO) và bạn có thể sử dụng text hoặc varchar type - công việc tương tự như với varchar . Sau kích thước này, bạn nên sử dụng LO API.

CREATE OR REPLACE FUNCTION writeappend(oid, text)
RETURNS void AS $$
DECLARE
  content bytea;
  fd int;
BEGIN
  content := convert_to($2, getdatabaseencoding());
  fd := lo_open($1, 131072);
  PERFORM lo_lseek(fd, 0, 2);
  IF length(content) <> lowrite(fd, content) THEN
    RAISE EXCEPTION 'not all content was written';
  END IF;
  PERFORM lo_close(fd);
END;
$$ LANGUAGE plpgsql;

postgres=> select lo_creat(-1);
┌──────────┐
│ lo_creat │
╞══════════╡
│    20653 │
└──────────┘
(1 row)

postgres=> select writeappend(20653, e'Hello\r\n');
┌─────────────┐
│ writeappend │
╞═════════════╡
│             │
└─────────────┘
(1 row)

postgres=> select writeappend(20653, e'Hello\r\n');
...

postgres=> select convert_from(lo_get(20653),getdatabaseencoding());
┌──────────────┐
│ convert_from │
╞══════════════╡
│ Hello\r     ↵│
│ Hello\r     ↵│
│              │
└──────────────┘
(1 row)

Vì vậy, bạn có thể sử dụng LO API, nhưng các loại cơ bản nên được ưu tiên. Giới hạn cho các loại này thường là đủ tốt - và làm việc với các loại cơ bản thoải mái hơn nhiều - với một số khả năng như fulltext.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL có hỗ trợ các cụm từ không nhạy cảm trọng âm không?

  2. Tại sao cơ sở dữ liệu Postgres của tôi hoạt động trong một thời gian và sau đó không thể khởi động máy chủ sau khi khởi động lại?

  3. `WHERE col IN` với các tham số được đặt tên

  4. Không có trình điều khiển phù hợp. Cố gắng kết nối với cơ sở dữ liệu postgresql trên Heroku bằng Hibernate

  5. Cách search_path ảnh hưởng đến độ phân giải của mã định danh và lược đồ hiện tại