| ora-01745:  Invalid host/bind variable name error [message #44449] | 
			Mon, 08 December 2003 16:54   | 
		 
		
			
				
				
				
					
						
						Ray
						 Messages: 58 Registered: January 2000 
						
					 | 
					Member  | 
					 | 
		 
		 
	 | 
 
	
		Hi, 
I'm receiving the following compilation error that I don't see a reason for: 
 
somd FINANCE > CREATE OR REPLACE TRIGGER vw_New_Employee_secure_INSERT 
  2     INSTEAD OF INSERT ON finance.vw_new_employee_secure 
  3     REFERENCING NEW AS New 
  4        
  5     FOR EACH ROW 
  6  BEGIN 
  7   
  8     INSERT INTO finance.employee VALUES (EmpID_Seq.NEXTVAL, 
  9       '04', 
 10       :New.ssn,  
 11       :New.orgcode, 
 12       :new.LName, 
 13       :new.FName, 
 14       :new.Object_Code, 
 15       :new.FTE, 
 16       :new.PRFTE, 
 17       :new.ExSalary, 
 18       :new.unit,  
 19       :New.rating,  
 20       :New.Hire_Date 
 21       :new.bargaining_unit,  
 22       :new.PERCENT_INCREASE, 
 23       'X', 
 24       'XXXX', 
 25       :New.Base_Salary, 
 26       :New.PrSalary, 
 27       :New.Reserve_Amt, 
 28       :new.REMARKS, 
 29       :new.Job_Code, 
 30       :new.New_Emp_Flag, 
 31       :'XUSERNAMEX'); 
 32  END; 
 33  / 
 
Warning: Trigger created with compilation errors. 
 
somd FINANCE > show errors 
Errors for TRIGGER VW_NEW_EMPLOYEE_SECURE_INSERT: 
 
LINE/COL ERROR 
-------- ------------------------------------------------------------- 
3/4      PL/SQL: SQL Statement ignored 
26/7     PL/SQL: ORA-01745: invalid host/bind variable name 
 
This is to allow an insert into a table named employee as follows: 
 
somd FINANCE > DESC EMPLOYEE; 
 Name                            Null?    Type 
 ------------------------------- -------- ---- 
 EMPID                           NOT NULL NUMBER 
 FY                                       VARCHAR2(2) 
 SSN                                      VARCHAR2(9) 
 ORGCODE                                  VARCHAR2(5) 
 LNAME                                    VARCHAR2(35) 
 FNAME                                    VARCHAR2(25) 
 OBJECT_CODE                              VARCHAR2(4) 
 FTE                                      FLOAT(126) 
 PRFTE                                    FLOAT(126) 
 EXSALARY                                 FLOAT(126) 
 UNIT                                     VARCHAR2(2) 
 RATING                                   VARCHAR2(1) 
 HIRE_DATE                                DATE 
 BARGAINING_UNIT                          VARCHAR2(1) 
 PERCENT_INCREASE                         FLOAT(126) 
 JOB_GROUP                                VARCHAR2(1) 
 JOB_CLASS                                VARCHAR2(4) 
 BASE_SALARY                              FLOAT(126) 
 PRSALARY                                 FLOAT(126) 
 RESERVE_AMT                              FLOAT(126) 
 REMARKS                                  VARCHAR2(255) 
 JOB_CODE                                 VARCHAR2(4) 
 NEW_EMP_FLAG                             VARCHAR2(1) 
 USERNAME                                 VARCHAR2(15) 
 
The view that the instead of insert trigger fires on is as follows: 
somd FINANCE > DESC VW_NEW_EMPLOYEE_SECURE; 
 Name                            Null?    Type 
 ------------------------------- -------- ---- 
 EMPID                           NOT NULL NUMBER 
 FY                                       VARCHAR2(2) 
 SSN                                      VARCHAR2(9) 
 ORGCODE                                  VARCHAR2(5) 
 LNAME                                    VARCHAR2(35) 
 FNAME                                    VARCHAR2(25) 
 OBJECT_CODE                              VARCHAR2(4) 
 FTE                                      FLOAT(126) 
 PRFTE                                    FLOAT(126) 
 EXSALARY                                 FLOAT(126) 
 UNIT                                     VARCHAR2(2) 
 RATING                                   VARCHAR2(1) 
 HIRE_DATE                                DATE 
 BARGAINING_UNIT                          VARCHAR2(1) 
 PERCENT_INCREASE                         FLOAT(126) 
 JOB_GROUP                                VARCHAR2(1) 
 JOB_CLASS                                VARCHAR2(4) 
 BASE_SALARY                              FLOAT(126) 
 PRSALARY                                 FLOAT(126) 
 RESERVE_AMT                              FLOAT(126) 
 REMARKS                                  VARCHAR2(255) 
 JOB_CODE                                 VARCHAR2(4) 
 NEW_EMP_FLAG                             VARCHAR2(1) 
 USERNAME                                 VARCHAR2(15) 
 
The only reference I have found for this error states for me to rename the variable in question and retry.  I have renamed, and even gone as far as placing a literal value instead of a variable name in the INTO statement and it still chokes.   
 
Any ideas? 
 
Your help is much appreciated! 
Regards, 
-Ray
		
		
		
 |  
	| 
		
	 | 
 
 
 | 
	| 
		
 | 
	
		
		
			| Re: ora-01745:  Invalid host/bind variable name error [message #44453 is a reply to message #44450] | 
			Tue, 09 December 2003 09:46    | 
		 
		
			
				
				
				
					
						
						Ray
						 Messages: 58 Registered: January 2000 
						
					 | 
					Member  | 
					 | 
		 
		 
	 | 
 
	
		Really was in the trigger code.  Great catch!   
 
Leads to another error: 
LINE/COL ERROR 
-------- --------------------------------------3/4      PL/SQL: SQL Statement ignored 
3/24     PL/SQL: ORA-00947: not enough values 
 
I seem to have all destination fields accounted for in the insert statement.   
 
I don't want to impose on everyone to debug my mistakes, though if anyone happens to see anything obvious, any input is appreciated, otherwise I'll keep working on it. 
 
Thanks Todd, 
-Ray
		
		
		
 |  
	| 
		
	 | 
 
 
 | 
	| 
		
 | 
	| 
		
 |