Como o erro diz, você está passando o número ou tipo errado de parâmetros.
Eu recomendo fortemente usar a sintaxe de parâmetro nomeado se você estiver tentando chamar um procedimento com tantos parâmetros. Caso contrário, os humanos tendem a ter dificuldade em perceber quando omitem um parâmetro ou passam parâmetros na ordem errada se estiverem tentando descobrir o que estão passando para o 20º parâmetro de um procedimento. Pessoalmente, eu tendia a refatorar um procedimento muito antes de tentar passar 20 parâmetros. Algo tão simples como passar um ou dois tipos de registro pode tornar o código muito mais fácil de ler e entender.
Mudei sua chamada para usar parâmetros nomeados e adicionei comentários para onde você cometeu erros.
execute new_order(
p_order_id => 4, -- Pass in a number rather than using implicit conversion
p_order_num => 'O223PS562',
p_name => 'Test Test',
p_email => '[email protected]',
p_address => '123 Test Street',
p_city => 'Newcastle Upon Tyne',
p_province => 'Tyne and Wear',
p_postcode => 'NE98 4TN',
p_telephone => '123456789',
p_total => 7.97, -- Pass in a number rather than using implicit conversion
p_order_date => to_date('11-apr-2021', 'DD-mon-YYYY'), -- Pass in a date rather than using implicit conversion
p_order_item_id => 5, -- Pass in a number rather than using implicit conversion
p_product_id => 4, -- Pass in a number rather than using implicit conversion
p_seller_id => 2, -- Pass in a number rather than using implicit conversion
p_sub_order_number => 2, -- Pass in a number rather than using implicit conversion
p_quantity => 3073748221, -- Do you really want the quantity to be in the billions? That seems unlikely.
-- Perhaps there was supposed to be a phone number parameter
p_condition => '2', -- That doesn't look like a condition. Probably meant to be a unit price
p_unit_price => 'Brand new', -- Here we have a definite error. p_unit_price is a number but you can't connvert
-- the string 'Brand new' to a number. I assume that was really supposed to be the
-- condition
p_cost_charge => 1.99, -- Pass in a number rather than using implicit conversion
'2.00' -- And here we have a value being passed in but no equivalent parameter
);