| Author | 
		  Message
		 | 
		
		  | sankritya | 
		  
		    
			  
				 Posted: Thu Apr 28, 2016 10:15 am    Post subject: Optional feature not implemented. | 
				     | 
			   
			 
		   | 
		
		
		   Centurion
 
 Joined: 14 Feb 2008 Posts: 100
  
  | 
		  
		    
			  
				I ham calling a Oracle function from WMB7. 
 
 
Function declaration in WMB
 
 
CREATE PROCEDURE checkDataExist (
 
IN data1 CHARACTER,
 
IN data2 CHARACTER
 
)
 
RETURNS BOOLEAN
 
LANGUAGE DATABASE
 
EXTERNAL NAME "AB.ABCD.checkDataExist";
 
 
Function call in WMB 
 
DECLARE dataAlreadyExists BOOLEAN FALSE ;
 
CALL checkDataExist (Environment.Variables.data1,Environment.Variables.data2) INTO dataAlreadyExists;
 
 
 
I am getting the below exception. Need help to understand the error as there are other procedures ( not functions) defined in same package which can be accessed easily in same service call.
 
 
 
   
	| Quote: | 
   
  
	(0x01000000):DatabaseException = (
 
              (0x03000000):File              = '/build/S700_P/src/DataFlowEngine/ImbOdbc.cpp'
 
              (0x03000000):Line              = 358
 
              (0x03000000):Function          = 'ImbOdbcHandle::checkRcInner'
 
              (0x03000000):Type              = ''
 
              (0x03000000):Name              = ''
 
              (0x03000000):Label             = ''
 
              (0x03000000):Catalog           = 'BIPmsgs'
 
             (0x03000000):Severity          = 3
 
              (0x03000000):Number            = 2321
 
              (0x03000000):Text              = 'Root SQL exception'
 
              (0x01000000):Insert            = (
 
                (0x03000000):Type = 2
 
               (0x03000000):Text = '-1'
 
              )
 
              (0x01000000):Insert            = (
 
                (0x03000000):Type = 14
 
                (0x03000000):Text = 'libbipodbc.so'
 
              )
 
              (0x01000000):DatabaseException = (
 
                (0x03000000):File     = '/build/S700_P/src/DataFlowEngine/ImbOdbc.cpp'
 
                (0x03000000):Line     = 541
 
                (0x03000000):Function = 'ImbOdbcHandle::checkRcInner'
 
                (0x03000000):Type     = ''
 
                (0x03000000):Name     = ''
 
                (0x03000000):Label    = ''
 
                (0x03000000):Catalog  = 'BIPmsgs'
 
                (0x03000000):Severity = 3
 
                (0x03000000):Number   = 2322
 
                (0x03000000):Text     = 'Child SQL exception'
 
                (0x01000000):Insert   = (
 
                  (0x03000000):Type = 5
 
                  (0x03000000):Text = 'HYC00'
 
                )
 
                (0x01000000):Insert   = (
 
                  (0x03000000):Type = 2
 
                  (0x03000000):Text = '0'
 
                )
 
                (0x01000000):Insert   = (
 
                  (0x03000000):Type = 5
 
                  (0x03000000):Text = '[IBM][ODBC Oracle Wire Protocol driver]Optional feature not implemented.'
 
 | 
   
 
 | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | maurito | 
		  
		    
			  
				 Posted: Thu Apr 28, 2016 10:24 am    Post subject: Re: Optional feature not implemented. | 
				     | 
			   
			 
		   | 
		
		
		   Partisan
 
 Joined: 17 Apr 2014 Posts: 358
  
  | 
		  
		    
			  
				
   
	| sankritya wrote: | 
   
  
	I ham calling a Oracle function from WMB7. 
 
 
Function declaration in WMB
 
 
CREATE PROCEDURE checkDataExist (
 
IN data1 CHARACTER,
 
IN data2 CHARACTER
 
)
 
RETURNS BOOLEAN
 
LANGUAGE DATABASE
 
EXTERNAL NAME "AB.ABCD.checkDataExist";
 
 
Function call in WMB 
 
DECLARE dataAlreadyExists BOOLEAN FALSE ;
 
CALL checkDataExist (Environment.Variables.data1,Environment.Variables.data2) INTO dataAlreadyExists;
 
 
 
I am getting the below exception. Need help to understand the error as there are other procedures ( not functions) defined in same package which can be accessed easily in same service call.
 
 
 
   
	| Quote: | 
   
  
	(0x01000000):DatabaseException = (
 
              (0x03000000):File              = '/build/S700_P/src/DataFlowEngine/ImbOdbc.cpp'
 
              (0x03000000):Line              = 358
 
              (0x03000000):Function          = 'ImbOdbcHandle::checkRcInner'
 
              (0x03000000):Type              = ''
 
              (0x03000000):Name              = ''
 
              (0x03000000):Label             = ''
 
              (0x03000000):Catalog           = 'BIPmsgs'
 
             (0x03000000):Severity          = 3
 
              (0x03000000):Number            = 2321
 
              (0x03000000):Text              = 'Root SQL exception'
 
              (0x01000000):Insert            = (
 
                (0x03000000):Type = 2
 
               (0x03000000):Text = '-1'
 
              )
 
              (0x01000000):Insert            = (
 
                (0x03000000):Type = 14
 
                (0x03000000):Text = 'libbipodbc.so'
 
              )
 
              (0x01000000):DatabaseException = (
 
                (0x03000000):File     = '/build/S700_P/src/DataFlowEngine/ImbOdbc.cpp'
 
                (0x03000000):Line     = 541
 
                (0x03000000):Function = 'ImbOdbcHandle::checkRcInner'
 
                (0x03000000):Type     = ''
 
                (0x03000000):Name     = ''
 
                (0x03000000):Label    = ''
 
                (0x03000000):Catalog  = 'BIPmsgs'
 
                (0x03000000):Severity = 3
 
                (0x03000000):Number   = 2322
 
                (0x03000000):Text     = 'Child SQL exception'
 
                (0x01000000):Insert   = (
 
                  (0x03000000):Type = 5
 
                  (0x03000000):Text = 'HYC00'
 
                )
 
                (0x01000000):Insert   = (
 
                  (0x03000000):Type = 2
 
                  (0x03000000):Text = '0'
 
                )
 
                (0x01000000):Insert   = (
 
                  (0x03000000):Type = 5
 
                  (0x03000000):Text = '[IBM][ODBC Oracle Wire Protocol driver]Optional feature not implemented.'
 
 | 
   
 
 | 
   
 
 
Please post the Oracle stored procedure signature.
 
I am not sure if Boolean is supported for Oracle. If it not, you can create a wrapper stored procedure that makes the call , interprets the Boolean and returns Y or N | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | sankritya | 
		  
		    
			  
				 Posted: Thu Apr 28, 2016 10:35 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   Centurion
 
 Joined: 14 Feb 2008 Posts: 100
  
  | 
		  
		    
			  
				It is a function in Oracle
 
 
FUNCTION checkDataExist (data1         VARCHAR2,
 
                                   data2     VARCHAR2
 
                                  )
 
   RETURN BOOLEAN | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | mqjeff | 
		  
		    
			  
				 Posted: Thu Apr 28, 2016 10:43 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   Grand Master
 
 Joined: 25 Jun 2008 Posts: 17447
  
  | 
		  
		    
			  
				This error usually means that the workarounds value in the ODBC dsn isn't set right. _________________ chmod  -R ugo-wx / | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | sankritya | 
		  
		    
			  
				 Posted: Mon May 02, 2016 2:12 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   Centurion
 
 Joined: 14 Feb 2008 Posts: 100
  
  | 
		  
		    
			  
				It worked after changing the return type to character from Boolean in Oracle function.    | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | maurito | 
		  
		    
			  
				 Posted: Mon May 02, 2016 5:23 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   Partisan
 
 Joined: 17 Apr 2014 Posts: 358
  
  | 
		  
		    
			  
				
   
	| sankritya wrote: | 
   
  
	It worked after changing the return type to character from Boolean in Oracle function.    | 
   
 
 
 
yes, you can still use Boolean in the ESQL create function,the oracle SP must return either '0' or '1' and that will map nicely. | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | 
		    
		   |