các giá trị được chèn vào bảng bị ép buộc vào Kiểu dữ liệu của cột đích theo Các bước.
Độ phân giải loại mục tiêu truy vấn
Kiểm tra khớp chính xác với mục tiêu.
Nếu không, hãy cố gắng buộc biểu thức đến mục tiêu kiểu. Điều này sẽ thành công nếu hai loại được biết đến tương thích nhị phân, hoặc nếu có chức năng chuyển đổi. Nếu như Biểu thức là một nghĩa đen không xác định, nội dung của Chuỗi theo nghĩa đen sẽ được đưa vào chuyển đổi đầu vào thường xuyên cho loại đích.
Nếu mục tiêu là loại có độ dài cố định (ví dụ:charhoặcVarcharTuyên bố với một chiều dài) sau đó cố gắng tìm một hàm định cỡ cho loại mục tiêu. Chức năng kích thước là một hàm giống nhau đặt tên là loại, lấy hai đối số trong đó là loại đó và thứ hai là một số nguyên, và trở lại cùng loại. Nếu tìm thấy, nó được áp dụng, vượt qua Độ dài được khai báo của cột là tham số thứ hai.
Ví dụ 5-6.Nhân vậtStorage Type Conversion
Đối với cột đích được khai báo làký tự (20)Truy vấn sau đây đảm bảo rằng mục tiêu có kích thước chính xác:
TGL = Tạo Bảng VV (V ký tự (20)); TẠO NÊN TGL = Chèn vào VV Chọn 'ABC' || 'def'; Chèn 392905 1 tgl = chọn v, length (v) từ vv; v | chiều dài ----------------------+-------- ABCDEF | 20 (1 hàng)
Điều thực sự đã xảy ra ở đây là hai điều chưa biết nghĩa đen được giải quyết thànhTextTheo mặc định, cho phép||Nhà điều hành thành được giải quyết làTextConcatenation. Sau đóTextKết quả của người vận hành bị ép buộcbpchar("Băng trống char ", Tên nội bộ của kiểu dữ liệu ký tự) đến khớp với loại cột đích. (Vì trình phân tích cú pháp biết rằngTextvàbpcharlà tương thích nhị phân, sự ép buộc này là ngầm và không Chèn mọi cuộc gọi chức năng thực.) Cuối cùng, hàm định cỡbpchar (bpchar, số nguyên)được tìm thấy trong các danh mục hệ thống và áp dụng cho kết quả của nhà điều hành và chiều dài cột được lưu trữ. Chức năng cụ thể loại này thực hiện Kiểm tra độ dài yêu cầu và bổ sung không gian đệm.