awk and tr troubles

I am trying to make all the fields containing lower case letters upper case and the third field of a file display ** instead.
I have this:

 awk '{printf "%s %s ** %d %d\n", $1, $2, $4, $5}' database.txt | tr '[:lower:]' '[:upper:]' < database.txt

And that only changes it to upper case, other way around then it would display just the stars. Is there any way of doing BOTH?

not understand your question. Could you please provide the sample database.txt and expect output directly?

Remove "< database.txt"

 awk '{printf "%s %s ** %d %d\n", $1, $2, $4, $5}' database.txt | tr '[:lower:]' '[:upper:]'

That did the trick, thank you. I also have a problem with changing delimiters between fields.

 awk -F"-" '{print $1 $2 $3 $4 $5 $6}' database.txt

is what I have, and have been fooling around with it but I don't get any results.

Do you mean Output Field Separator (OFS)? Then:

awk 'BEGIN {OFS="-"} { print $1, $2 ... }'