The OpenMP Forums are now closed to new posts. Please visit Stack Overflow if you are in need of help: https://stackoverflow.com/questions/tagged/openmp
Basically the difference between a target directive and a target data directive directive is that the code inside the target directive scope is executed on the device, while a target data directive just say that you want some data on the device, and they will remain available only inside the scope of the directive.
target and target data are different in terms of values. Suppose you access target value. This value denotes the address of the location. But, the target data denotes the actual value located in that address.
I hope you are clear now.