The calcuation of the "long running query with low cpu" metric in sp_BlitzCache at the time of writing is
long_running_low_cpu = CASE WHEN AverageDuration > AverageCPU * 4 AND AverageCPU < 500. THEN 1 END
With AverageCPU = (total_worker_time / 1000.0) / execution_count
And AverageDuration = (total_elapsed_time / 1000.0) / execution_count
I achieved something close to what is being asked by using prebuild events. In my case I wanted different users and logins to be included in a deployment according to which configuration was being built.
To do this I created a .sql file for each build config, for each user. I flagged these as Build Action 'None': (I put these in a subfolder of the project)
You're right. While the procedure executes correctly from SQL or PL/SQL code, somehow SQLDeveloper raises an exception when you invoke the procedure (via the green arrow) and pass anything as input that contains a "@" sign. It's either a peculiar behavior of SQL Developer or a bug.
But executing it directly works fine, also from SQL Developer:
You In para meter is not country_idcountry it is countryID
PROCEDURE `setState`(IN `statename` VARCHAR(100), IN `countryID` INT(11))
So you mus use
SET @countryID := `countryID`;
To grab the country_idcountry.
Be aware when country_idcountry is a foreign key you must have the county id already in your database.