internal OciRowIdDescriptor GetAttributeRowIdDescriptor(OciErrorHandle errorHandle, OciHandle env) { OciRowIdDescriptor descriptor = null; IntPtr outputPtr = IntPtr.Zero; int outSize = 16; int status = 0; OciAttributeType attrType = OciAttributeType.RowId; outputPtr = OciCalls.AllocateClear(outSize); uint siz = (uint)outSize; status = OciCalls.OCIAttrGetRowIdDesc(Handle, HandleType, outputPtr, ref siz, attrType, errorHandle); if (status != 0) { OciErrorInfo info = errorHandle.HandleError(); throw new OracleException(info.ErrorCode, info.ErrorMessage); } if (outputPtr != IntPtr.Zero && siz > 0) { descriptor = (OciRowIdDescriptor)env.Allocate(OciHandleType.RowId); descriptor.SetHandle(outputPtr); } return(descriptor); }