Tôi có một quy trình hợp lệ và có trong đó một câu lệnh insert..select. Bây giờ có một trường hợp khi thực hiện thủ tục này tạo ra lỗi "ORA-00904:: invalid identifier" từ câu lệnh này. Làm thế nào mà thậm chí về mặt lý thuyết có thể? Không có trình kích hoạt hoặc SQL động.Làm cách nào để nhận được "ORA-00904:: số nhận dạng không hợp lệ" từ gói hợp lệ?
Ngoài ra, văn bản ORA-00904 trong sqlerrm không có con trỏ tới bất kỳ số nhận dạng cụ thể nào mà Oracle coi là không hợp lệ.
Oracle phiên bản 9.2.0.8
edit2:
Hóa ra là có một vấn đề với một hàm được gọi từ bên trong mà chọn (thay thế nó bằng hằng số và tất cả mọi thứ đã làm việc). Có lẽ đó là lý do mà ORA-00904 không đưa ra một định danh. Tuy nhiên, câu hỏi vẫn còn - làm thế nào có thể đó là mã biên dịch trước không có sql động cho lỗi này?
Bạn có thể đăng một số mã mẫu không! – Tim
Có bất kỳ chế độ xem nào không? Từ những gì bạn đã nói tôi đoán bạn đã có một trình xử lý ngoại lệ cho tất cả các lỗi ('khi người khác') in' SQLERRM'; nếu bạn không có thì ngoại lệ sẽ được nêu ra và sẽ cung cấp thêm thông tin về vị trí của nó. –
Chức năng mà bạn đã xác định và bất kỳ thứ gì được gọi lần lượt, cũng không có SQL động? Có bất cứ điều gì trong chuỗi có một mệnh đề 'authid current_user', điều này có thể ảnh hưởng đến hành vi giữa biên dịch và thời gian chạy (đặc quyền và độ phân giải) không? Bạn có dựa vào bất kỳ privs được cấp vai trò nào không áp dụng trong các gói không? –