You can pass column name as parameter, in that case you have to execute the query dynamically:
example:
exec('select convert(bigint,cast(' + @Value + ' as binary)) from [dbo].[##Mytemp]');
This will give you the recordset and not the output parameter.
You can also look at the following link on using sp_executesql:
DECLARE @i INT, @sql NVARCHAR(512)
SET @sql = N'SELECT @i = COUNT(*) FROM ' + @dbname + '.INFORMATION_SCHEMA.TABLES'
EXEC sp_executesql @query = @sql, @params = N'@i INT OUTPUT', @i = @i OUTPUT
http://sqlserver2000.databases.aspfaq.com/how-do-i-get-the-result-of-dynamic-sql-into-a-variable.html[
^]