Podle dokumentace
ODP.NET, Managed Driver nezávisí na NLS_LANG nastavení, pouze v národním prostředí .NET.
Zkontrolujte své CultureInfo.CurrentCulture hodnota. Tato stránka Jak:Nastavení kultury a kultury uživatelského rozhraní pro webovou stránku ASP.NET Globalizace
by vám měl pomoci. Musíte nastavit kulturu, která podporuje arabské znaky.
Znovu ověřte, že datový typ sloupce SP_FLG je NVARCHAR2 , resp. NCLOB (nikoli VARCHAR2 )
Zkuste také použít bind variables:
cmd.CommandText = "UPDATE SHAHR_POS SET SP_FLG = :val"
cmd.Parameters.Add("val", OracleDbType.NVarchar2, ParameterDirection.Input).Value = "سلام"